Jquery .On 不工作,.live 工作 [重复]
Posted
技术标签:
【中文标题】Jquery .On 不工作,.live 工作 [重复]【英文标题】:Jquery .On is not working, where .live is working [duplicate] 【发布时间】: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 在下面指出的那样
【参考方案1】:
要将下面的“live”替换为“on”,
$('selector').live('event', func);
您必须将其更改为,
$(document).on('event', 'selector', func);
【讨论】:
以上是关于Jquery .On 不工作,.live 工作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
jQuery事件绑定on()bind()live()与delegate() 方法详解