说来,在csdn落户也有好几年了,一直都没有留下点什么,有点惭愧。
这次给大家献上一个我自己写的jQuery全选插件。
修改于:2013-7-13
/* 功能:表格全选
* 制作:Vilien
* 日期:2013.7.13
*
* @usage $(checkbox).checkall(selector)
*
* @param checkbox
* > 触发全选的checkbox,必须,类型为jQuery选择器
*
* @param selector
* > 触发全选后需要选择的checkbox列表,可省略(谨慎),缺省为页面内所有checkbox
* > 也可仅仅选择checkbox容器,程序将自动搜寻容器下的所有checkbox
*
* @eg
* > 1). selector仅选择checkbox容器
* > HTML:
* > <div class="boxs"><input type="checkbox" /><input type="checkbox" /></div>
* > <input type="checkbox" οnclick="$(this).checkall('.boxs')" />
*
* > 2). selector选择checkbox列表
* > HTML:
* > <div class="boxs"><input name="ch" type="checkbox" /><input name="ch" type="checkbox" /></div>
* > <input type="checkbox" οnclick="$(this).checkall(':checkbox[name=ch]')" />
*/
;(function($){$.fn.extend({
checkall: function(selector)
{
var _self = this,
args = arguments;
if (!_self.is(":checkbox")) return true; // 检查有效性
if (event && event.type=="click") {
run();
} else {
_self.on("click", run);
}
return _self;
function run() {
if (args.length<1) {
checked($(":checkbox").not(_self));
} else {
$(selector).each(function(){
if (!$(this).is(":checkbox")) {
checked($(this).find(":checkbox").not(_self));
} else {
checked($(this));
}
});
}
}
function checked(boxs) {
boxs.prop("checked", _self.prop("checked"))
.off("change").on("change", function(){
!$(this).prop("checked") ? _self.prop("checked", false) : 0;
});
}
}
})})(jQuery);