我们有以下divs
<div id="div1"></div>
<div id="div2" style="display:none"></div>
点击一些链接加载这些div。我们只在该div中加载相应的js文件。当我们从一个div移动到另一个div时,我们调用jquery为空以清除所有div然后仅加载clicked 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("*");
以上代码均无效
答案 0 :(得分:1)
此代码应删除div中所有子项的事件。
$("#div1").find("*").off();
如果事件已添加到div中,则以下代码应该有效。
$("#div1").off();
否则,需要更多上下文。
答案 1 :(得分:1)
如果你查看关于jQuery的文档,它需要一个或多个特定事件。
答案 2 :(得分:0)
事件处理程序正被添加到document元素中,因此您需要将其从同一元素中删除。以下应该有效。
$(document).off("click", "#tblPatientSearch tbody tr");