2013-08-21 120 views
0

我是新来的,但是,必须有一个更好的书写方式。如何简化/优化这个jQuery

三个相似的功能,它们可以与逗号或其他东西结合使用。

$('#open-sidebar').click(function(){ 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 
$('#close-sidebar').click(function(){ 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 

$("#top").bind("swiperight", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 
$("#content").bind("swiperight", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 
$("#top").bind("swipeleft", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 

$("#content").bind("swipeleft", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 
$("#navigation").bind("swipeleft", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 

谢谢

+3

一个你应该问这在http://代码审查。 stackexchange.com/。 – putvande

回答

-2
var $body = $(document.body); 

function toggleBody() { 
    $body.toggleClass("menu-active"); 
    return false; 
} 

$('#open-sidebar, #close-sidebar').click(toggleBody); 
$('#top, #content').bind('swiperight swipeleft', toggleBody); 
$('#navigation').bind('swipeleft', toggleBody); 
+1

哇!为什么downvote? – joellustigman

+0

谁支持这个评论,为什么他们不赞成答案? O_o – joellustigman

+0

因为它在我看来不值得赞赏。当然,它回答了这个问题,但我不认为这个问题属于这里。 –

0

有了这个语法

$("#navigation, #content, ... ").bind("swipeleft", function (e) { 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 

而且你需要点击也

$('#close-sidebar, #id2, #id3, ....').click(function(){ 
    $("body").toggleClass("menu-active"); 
    return false; 
}); 
+0

啊,这就是我正在寻找的。我做错了这样的... $(“#navigation”,“#content”,“#top” )... 谢谢大家,我没有测试其他人 – TacoFiesta

+0

@TacoFiesta现在看看如果你问这个问题,你的问题会更多的话题。 –