<div id="loaded-content">
@Scripts.Render("~/someScript.js")
</div>
当上述内容装入AJAX从someScript.js
每一个事件监听器变得活跃并保持,即使内容被通过jQuery稍后移除像这样这似乎是等效于如何从特定的加载文件中删除所有事件侦听器?
<div id="loaded-content">
<script src="/someScript.js"></script>
</div>
:
$("#loaded-content").remove();
如果内容不断加载和删除,应该怎么做以防止同一个事件监听器被激活多次?我尝试添加一个全局变量var scriptHasRun = false;
,然后在someScript.js
下面的代码:
$(document).ready(function(){
if(scriptHasRun){
return;
}
scriptHasRun = true;
<more code>
});
它为someScript.js
,但随后而来someOtherScript.js
出现被加载同样的方式,这样可以防止事情事先我用同样的方法与另一个变量var otherScriptHasRun = false;
和第二次它在页面中加载它不再工作。当我取消支票时,它开始正常工作。我想知道如何复制someOtherScript.js
的情况,或者在正常情况下,可能会导致someScript.js
多次加载?
这是为了解除每个单独的元素。在'someOtherScript.js'的情况下,当我删除调用它的html时,所有东西都解除绑定。 – Nadroev