2

可能重复:
jquery .bind() 和/或 .ready() 不起作用

为什么以下类似程序之间的o / p存在差异?

<html>
 <head>
 <script src="scripts/jquery-1.6.2.js"></script>
 <script>
   function main()
   {
    $("#inside").text("1234");
   }
   $(document).ready( function(){
       main();   // 1
    });
 </script>
 </head>
 <body>
  <div id="inside">abcd</div>
 </body>
</html>

输出:1234

<html>
 <head>
 <script src="scripts/jquery-1.6.2.js"></script>
 <script>
   function main()
   {
    $("#inside").text("1234");
   }
   $(document).ready( main());//2
 </script>
 </head>
 <body>
   <div id="inside">
    abcd
   </div>
 </body>
</html>

输出:abcd

为什么 innerHTML 在这里没有改变?请解释这种行为.. :)

4

2 回答 2

7

在第二个变体中,您正在调用函数document.ready结果。要为函数本身调用它,只需省略括号:

$(document).ready(main);
于 2012-05-13T04:23:44.203 回答
0

在第二个版本中,您将main()立即调用该函数,而不是将其作为回调传递 - 您传递给$(document).ready()的是函数的实际结果main,而不是函数本身。

于 2012-05-13T04:25:21.593 回答