【发布时间】:2017-03-23 17:15:01
【问题描述】:
网格标题包含所有带有复选框的列名称,最后一列是带有复选框的重新分配列。最后一列中的所有单元格都包含复选框。因此,一旦我选中标题中的复选框,该特定列中的所有复选框都会得到检查。为此,我将 jquery 与 .live 一起使用,它的工作 100% 完美。但是,如果我想使用 .On 而不是 .live 它不起作用。在这里,我保留了 jquery 代码及其库。请在这个问题上帮助我。提前致谢。
.live 的 jquery: $("# input[id*='chkHeaderRM']:checkbox").live("click", function () {
var chkHeader = $(this);
$("#<%=rgCaseRM.ClientID%> input[id*='chkReAssign']").each(function (index) {
if (chkHeader.is(":checked")) {
$("td", $(this).closest("tr")).addClass("selected");
$(this).attr('checked', true);
$("#<%=divRM.ClientID%>").show();
}
else {
$(this).attr('checked', false);
$("td", $(this).closest("tr")).removeClass("selected");
$("#<%=divRM.ClientID%>").hide();
}
});
});
$("# input[id*='chkReAssign']:checkbox").live("click", function () { var grid = $(this).closest("table"); var chkHeader = $("# input[id*='chkHeaderRM']:checkbox"); if (!$(this).is(":checked")) { $("td", $(this).closest("tr")).removeClass("selected"); chkHeader.removeAttr("选中"); } 别的 { $("td", $(this).closest("tr")).addClass("selected"); if ($("[id*=chkReAssign]", grid).length == $("[id*=chkReAssign]:checked", grid).length) { chkHeader.attr("已检查", "已检查"); } } var checkedCheckboxes = $("# input[id*='chkReAssign']:checkbox:checked").size();
if (checkedCheckboxes > 0) {
$("#<%=divRM.ClientID%>").show();
}
else {
$("#<%=divRM.ClientID%>").hide();
}
});
【问题讨论】:
-
.on()不仅仅是.live()的替代品,您需要为父元素添加一个选择器以附加委托侦听器,正如@Aruna 在下面指出的那样
标签: javascript c# jquery jquery-ui jquery-plugins