我最近开始在jQuery中工作,现在当我在一个项目中工作时,我使用ajax函数并一次又一次地加载相同的库(我已经编写了)。由于一次又一次的$(document).ready(function(){})调用。意味着一个函数调用4次,如果我一次又一次地加载它4次。
我想要清理/取消准备/卸载以前的就绪函数,并且想要准备新的函数。我也经常尝试使用$(function(){})。但结果是一样的。我试着去获取任何相关的主题。但是找不到。
如果我找不到这个或者没有人能帮我。然后我想我应该把我的一个库拆分成多个库。
发布于 2011-05-18 16:34:47
这样,多个事件注册将相互独立地触发。
不过,您可以采取一种变通办法:设置一个标志,该标志将在多次调用时阻止执行。例如,此页面将加载您的脚本四次,但事件注册只发生一次:
this is your HTML page
<script>
var alreadyRan = false;
</script>
<script src="yourscript.js?firstload"></script>
<script src="yourscript.js?secondload"></script>
<script src="yourscript.js?thirdload"></script>
<script src="yourscript.js?nextload"></script>
etc.然后,在yourscript.js中:
if (!alreadyRan) { // we declared alreadyRan in the global scope
alreadyRan = true; // won't run on further invocations
// thus the handler will only be registered one time
$(document).ready(function(){
// your onready code
});
}请注意,将库拆分为只需要一次的部分和重复调用的部分,并且只加载一次初始部分可能会更容易。
https://stackoverflow.com/questions/6041870
复制相似问题