我们有下面的div
<div id="div1"></div>
<div id="div2" style="display:none"></div>
这些 div 是通过点击一些链接来加载的。我们只在那个 div 中加载相应的 js 文件。当我们从一个 div 移动到另一个 div 时,我们调用 jquery empty 以清除所有 div,然后仅加载单击的 div 的内容。 问题是;每次当我从一个 div 移动到另一个时,事件都会传播很多次。我认为空 div 不会删除附加到元素的事件,并且事件会再次附加。
我们尝试了以下所有选项
event.stopPropagation()
event.stopimmediatepropagation()
在空 div 之前调用 $("#div1").find("*").off()
。
但没有任何效果。 更新
我正在 div 1 中的 jquery 包下面加载
<script src="/some/bundles/providerdashboardindex?v=q4efyq1D6R9Q8EsGiRLSqO4B4bO-vFJB29DcG2uVel81"></script>
js中的一个函数是
$(document).on("click", "#tblPatientSearch tbody tr",function ()
{
}
如果我在清空 div 之前保持关闭状态,它就不起作用
$("#tblPatientSearch tbody tr").off();
$("#div1").find("*").off();
$('#div1').empty().off("*");
以上代码均无效
最佳答案
此代码应从 div 的所有子项中删除事件。
$("#div1").find("*").off();
如果事件被添加到 div,下面的代码应该可以工作。
$("#div1").off();
否则,需要更多上下文。
关于javascript - 清空 div 并重新填充但 jquery 事件触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35293709/