在 JSFIDDLE 上查看。
我喜欢使用 HTML5 数据属性来处理此类内容。使用以下 DOM 结构,您可以使用data-target
触发复选框上的属性定义目标复选框。目标应该是一个有效的 jQuery 选择器字符串。
HTML:
<input type="checkbox" id="checkUsers" class="checkAll" data-target="input[type=checkbox][rel=users]">
<label for="checkUsers">Users:</label>
<input type="checkbox" rel="users">
<input type="checkbox" rel="users">
<input type="checkbox" rel="users">
<input type="checkbox" rel="users">
<input type="checkbox" rel="users">
<br><br>
<input type="checkbox" id="checkPlaces" class="checkAll" data-target="input[type=checkbox][rel=places]">
<label for="checkPlaces">Places:</label>
<input type="checkbox" rel="places">
<input type="checkbox" rel="places">
<input type="checkbox" rel="places">
<input type="checkbox" rel="places">
<input type="checkbox" rel="places">
然后,您将插件设置为使用您定义的目标来触发基于触发复选框的选中属性的检查/取消选中。
插入:
(function( $ ){
$.fn.check = function() {
// "this" is a jQuery object of the checkbox that was clicked.
var target = this.data("target");
$(target).attr("checked", this[0].checked);
return this; //maintain chainability
};
})( jQuery );
这种方法的真正好处是它允许您只需要通过将事件附加到 aclass
而不是. 来管理一个事件处理程序声明id
。
事件处理程序声明:
$(function(){
$(".checkAll").click(function(){
$(this).check();
});
});