您的位置:首页 > Web前端 > JQuery

基于jQuery的简单全选插件

2013-07-05 15:51 477 查看
说来,在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" onclick="$(this).checkall('.boxs')" />
*
* > 2). selector选择checkbox列表
* > HTML:
* >   <div class="boxs"><input name="ch" type="checkbox" /><input name="ch" type="checkbox" /></div>
* >   <input type="checkbox" onclick="$(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: