jQuery快捷键/用于切换类的技术

问题描述:

在jQuery中,是否有另外一种方法来编写它?jQuery快捷键/用于切换类的技术

版本1

 $("#date_filter-enable").click(function() { 

     $("#search_dates").removeClass("hidden"); 
    }); 

    $("#date_filter-disable").click(function() { 

     $("#search_dates").addClass("hidden"); 
    }); 

2版

 $("input[id^=date_filter-]").click(function(e) { 

     var clicked = $(e.target); 
     var id = clicked.attr("id").split("-"); 
     var action = id[1]; 

     if(action == "enable") 
     $("#search_dates").removeClass("hidden"); 
     else 
     $("#search_dates").addClass("hidden"); 
    }); 

我已经习惯了编码这样......但我想知道是否有很多有效的,可读的,冷静的写作方式它...像切换,链接...最佳实践,我不知道^^

我很感谢你分享它! ^^

+1

而不是'$( “#search_dates”)addClass( “隐藏”);',你可能需要使用'$( “#search_dates”)隐藏()' – Chetan 2010-10-23 06:30:02

您应该使用toggleClass方法。

$("input[id^=date_filter-]").click(function(e) { 
    $("#search_dates").toggleClass("hidden"); 
}); 
+0

坏的屁股。 !谢谢jball! – Woppi 2010-10-23 06:48:27

$("input[id^=date_filter-]").click(function(e) { 
     if($(this).attr("id").split("-")[1] == "enable") 
     $("#search_dates").removeClass("hidden"); 
     else 
     $("#search_dates").addClass("hidden"); 
    }); 
+0

我特意为分裂创建了变量,因为我发现这个难以阅读......但是感谢您的输入!我很感激^^ – Woppi 2010-10-23 06:51:07