首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个$(.ready)函数(.ready(){})

多个$(.ready)函数(.ready(){})
EN

Stack Overflow用户
提问于 2011-05-18 16:28:18
回答 1查看 669关注 0票数 1

我最近开始在jQuery中工作,现在当我在一个项目中工作时,我使用ajax函数并一次又一次地加载相同的库(我已经编写了)。由于一次又一次的$(document).ready(function(){})调用。意味着一个函数调用4次,如果我一次又一次地加载它4次。

我想要清理/取消准备/卸载以前的就绪函数,并且想要准备新的函数。我也经常尝试使用$(function(){})。但结果是一样的。我试着去获取任何相关的主题。但是找不到。

如果我找不到这个或者没有人能帮我。然后我想我应该把我的一个库拆分成多个库。

EN

回答 1

Stack Overflow用户

发布于 2011-05-18 16:34:47

这样,多个事件注册将相互独立地触发。

不过,您可以采取一种变通办法:设置一个标志,该标志将在多次调用时阻止执行。例如,此页面将加载您的脚本四次,但事件注册只发生一次:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
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
  });
}

请注意,将库拆分为只需要一次的部分和重复调用的部分,并且只加载一次初始部分可能会更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6041870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档