Jquery $(“document”)。ready函数的不同行为

时间:2012-05-13 04:21:26

标签: javascript jquery html

  

可能重复:
  jquery .bind() and/or .ready() not working

为什么以下类似程序的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不会在这里改变?请解释这种行为.. :))

2 个答案:

答案 0 :(得分:7)

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

$(document).ready(main);

答案 1 :(得分:0)

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