空div和重新填充但jquery事件多次触发

时间:2016-02-09 13:47:03

标签: javascript jquery html css

我们有以下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("*");

以上代码均无效

3 个答案:

答案 0 :(得分:1)

此代码应删除div中所有子项的事件。

$("#div1").find("*").off();

如果事件已添加到div中,则以下代码应该有效。

$("#div1").off();

否则,需要更多上下文。

答案 1 :(得分:1)

如果你查看关于jQuery的文档,它需要一个或多个特定事件。

Maven 3.3.1

答案 2 :(得分:0)

事件处理程序正被添加到document元素中,因此您需要将其从同一元素中删除。以下应该有效。

$(document).off("click", "#tblPatientSearch tbody tr");