2012-12-14 64 views
1

一个一直在困扰着我的人。我将如何将这三组代码结合在一起?jQuery - 组合功能

$(".fly-out-menu").toggle(
     function() { 
     $('#page').animate({left: 250}, 'fast'); }, 
     function() { 
     $('#page').animate({left: 0}, 'fast'); } 
); 
$(".fly-out-menu").toggle(
     function() { 
     $('.sticky-container').animate({left: 250}, 'fast'); }, 
     function() { 
     $('.sticky-container').animate({left: 0}, 'fast'); } 
); 
$(".fly-out-menu").toggle(
     function() { 
     $('body').css('position','fixed') }, 
     function() { 
     $('body').css('position','static') } 
); 

感谢, [R

+2

'toggle'方法已过时,没有规则阻止你wrting更比一个线功能。 – undefined

+0

不说它已被弃用... http://api.jquery.com/toggle/ –

+1

您正在使用此切换http://api.jquery.com/toggle-event/ – undefined

回答

5

这样呢?

$(".fly-out-menu").toggle(
    function(){ 
     $('#page, .sticky-container').animate({left: 250}, 'fast'); 
     $('body').css('position','fixed'); 
    }, 
    function(){ 
     $('#page, .sticky-container').animate({left: 0}, 'fast'); 
     $('body').css('position','static'); 
    } 
); 

正如@undefined指出的那样,此事件现在已被弃用。处理这个自己将
方式一:

$(".fly-out-menu").on("click", function(){ 
    var t = $(this); 
    if(!t.data("alreadyclicked")){ 
     t.data("alreadyclicked", true); 
     $('#page, .sticky-container').animate({left: 250}, 'fast'); 
     $('body').css('position','fixed'); 
    } else { 
     t.data("alreadyclicked", false); 
     $('#page, .sticky-container').animate({left: 0}, 'fast'); 
     $('body').css('position','static'); 
    } 
}); 
+0

感谢您的帮助。似乎很奇怪,他们会贬低这一点,但嘿嘿。 –

+0

很高兴我能帮到你 – Pioul

1

你的意思是这样吗?

$(".fly-out-menu").toggle(
function() { 
    $('#page').animate({left: 250}, 'fast'); 
    $('.sticky-container').animate({left: 250}, 'fast'); 
    $('body').css('position','fixed'); 
}, 
function() { 
    $('#page').animate({left: 0}, 'fast'); 
    $('.sticky-container').animate({left: 0}, 'fast'); 
    $('body').css('position','static'); 
} 
); 

或者这样:

$(".fly-out-menu").toggle(
function() { 
    $('#page, .sticky-container').animate({left: 250}, 'fast'); 
    $('body').css('position','fixed'); 
}, 
function() { 
    $('#page, .sticky-container').animate({left: 0}, 'fast'); 
    $('body').css('position','static'); 
} 
);