1

这段代码:

<script type="text/javascript">

someMethod1();



$(function () {
    someMethod2();
});

</script>

这两个调用有什么区别?我们什么时候打第一个电话,什么时候打第二个电话?方法执行的顺序是什么?

4

3 回答 3

3
someMethod1();

这可能在文档准备好之前或之后调用,它不需要 jQuery。如果这是在页面的末尾,它将在所有控件都准备好时调用,但如果它在中间,那么它将只知道已呈现的控件。

$(function () {
    someMethod2();
});

这总是在文档准备好并且所有控件都准备好/渲染后调用。这需要 jQuery。您可以在此处阅读有关准备好的更多信息。这也将帮助您了解其他函数调用。

于 2012-07-09T06:27:13.807 回答
2

someMethod1 立即执行

someMethod2 在执行代码之前等待整个页面加载,包括外部 javascript 文件(其他脚本,或来自其他站点)、CSS 和其他资源。

$(function () {
    //run after page loads
});

Method2 有时以以下形式出现

$(document).ready(function() {
  // Handler for .ready() called.
});

欲了解更多信息:http ://api.jquery.com/ready/

于 2012-07-09T06:29:12.300 回答
1

脚本块中的语句按照它们出现的顺序执行。如果我们对行进行编号并插入一个或两个额外的换行符以便于讨论:

1  someMethod1();
2
3  $(
4    function () {
5      someMethod2();
6    }
7  );

第 1 行,someMethod1()首先执行。

然后$()执行第 3 行,其中参数 to$()是在第 4 到 6 行定义的匿名函数。该$()函数安排该匿名函数稍后执行以响应文档就绪事件。也就是那个时候匿名函数没有被执行。

最后,当文档准备好时,执行第 4 到第 6 行的匿名函数,这意味着第 5 行someMethod2()出现。

于 2012-07-09T06:32:51.673 回答