0

我继承了一些代码,我想做的就是运行一些 jQuery 代码,特别是一个警报。

我知道如何使用 jQuery/JavaScript 做到这一点,但现在确定我是否可以使用我已经拥有的内容,如下所示:

<script>
  $LAB
  .script("js/lib/jquery-1.7.1.min.js").wait()
  .script("js/lib/jquery.mobile-1.1.0.min.js").wait()
  .script("../js/mobile/config/buildfile.js").wait()
  .script("js/init.js")
  .wait(function () {
    $(function() {
    setupHelpers();
    loadApp(true,
      function () {
      },
      function () {
      });
    });
  });
</script>

我是否还需要使用 document.ready 或者我可以将警报放在上面代码中的某个位置?谢谢

4

1 回答 1

0

是否需要等待 DOMready 的答案与 LABjs 是否在图中是分开的。将“DOMready”与“脚本已完成并准备就绪”混为一谈是一种常见的误解,而实际上它们是两个独立的事件,应该根据您的需要单独处理。

因此,要回答您的具体问题,您是否应该等待 DOMready ......答案是,这取决于您是否需要 DOM 来显示警报。如果您使用普通alert()对话框弹出窗口向用户发出警报,那么您不会。如果您正在使用某些插件通过将 <div> 注入 DOM 以显示警报来“提醒”用户,那么是的,您肯定需要等待 DOM。

无论您做什么,都不要误以为“脚本加载”事件(这是您在最终wait(..)调用中得到的)意味着 DOM 已准备好。这不一定是真的。


规则 1:如果您需要 DOM 执行某些任务,请始终使用 DOMready 事件处理程序等待,不要假设。

规则 2:如果您需要等待部分或全部脚本完成加载,请使用脚本加载事件,就像 LABjs 等脚本加载器为您提供的那样。

规则 3:如果您需要 DOM 和脚本来完成加载,则通过在脚本加载的处理程序中嵌入一个 DOMready 处理程序来组合这两个事件,就像您在上面所做的那样。

于 2012-05-31T15:26:40.470 回答