4

我意识到我可以指定$(document).ready(function(){});不止一次。
假设像这样

$(document).ready(function(){
    var abc = "1122";
    //do something..
});

$(document).ready(function(){
    var abc = "def";
    //do something..
});
  1. 这是标准吗?这些代码适用于我的 FF (16.0.2)。我只是有点害怕其他浏览器可能不会。
  2. 究竟发生了什么?jQuery 如何处理这些代码?

谢谢。

4

3 回答 3

10

是的,这是标准和推荐的,jQuery 保证这些函数将按声明顺序执行(有关实现的详细信息,请参阅此相关答案)。

abc变量是您的函数的本地变量,不会干扰。您看不到abc在另一个回调之一中声明的值。

于 2012-11-29T10:18:26.233 回答
1

是的,多个 document.ready 函数可以在同一个页面中使用。它不会在任何浏览器中给出任何错误或异常。该函数将按从高到低的顺序执行。

于 2012-11-29T10:22:58.450 回答
0

即使它是标准的,我宁愿只使用一个 $(document.ready) ... 来保持它干燥,否则你最终可能会在你的页面上说 10 个这样的声明,这将使它看起来像不可维护的意大利面条代码(但 JS 也允许你这样做)

于 2012-11-29T11:01:36.740 回答