jquery更改方法和批量类添加
Posted
技术标签:
【中文标题】jquery更改方法和批量类添加【英文标题】:Jquery change method and bulk class adding 【发布时间】:2011-04-21 04:13:51 【问题描述】:你好 我有一个表(类名“.data”),它的头上有一个复选框,用于选择/取消选择我的 tbody 中的所有复选框。
还可以单独选择 tbody 内的每个复选框,一旦选择了一个复选框,它就会向所选行添加一个新类(用于使背景成为其他颜色以突出显示)。
现在为此我写了这样的方法:
function enableBulkCheckbox()
$(".checkall").change(function()
if ($(this).is(':checked'))
$(".data input:checkbox").attr('checked', true);
else
$(".data input:checkbox").attr('checked', false);
);
function selectMark(box)
if ($(box).is(':checked'))
$(box).parent().parent().addClass("selected");
else
$(box).parent().parent().removeClass("selected");
;
function applySelectMark()
$(".data tbody input:checkbox").change(function()
selectMark(this);
alert("hooo");
);
;
我初始化 enableBulkCheckbox() 和
似乎$(".data tbody input:checkbox").change
无法识别是否触发了enableBulkCheckbox()
。然而,通过批量选择复选框选择/取消选择所有选项的工作方式与预期相同。如何解决这个问题,以便一旦我单击批量复选框,所有行都可以获得“选定”类。
【问题讨论】:
【参考方案1】:我认为问题在于更改“已检查”属性不会触发更改事件。尝试在 enableBulkCheckbox 函数中调用 selectMark 函数:
function enableBulkCheckbox()
$(".checkall").change(function()
var chks=$(".data input:checkbox");
if ($(this).is(':checked'))
chks.attr('checked', true);
else
chks.attr('checked', false);
chks.each(function()
selectMark(this);
);
);
【讨论】:
谢谢!仅供参考,chks.each 在“”之后需要一个“)”。以上是关于jquery更改方法和批量类添加的主要内容,如果未能解决你的问题,请参考以下文章