2012-07-31 72 views
0

我有一个要求,指出只使用普通的JavaScript而不使用jQuery。我需要在DOM加载后立即初始化一些变量(使用某个函数),而不是在页面完全加载时。总之,它不应该等待整个页面加载。在jQuery中,可以使用document.ready()函数轻松完成。document.ready like javascript中的功能?

是否可以使用任何函数在JavaScript中实现它?

+3

不,回传给'document.read y()'只要** DOM加载**就执行。如果你只是想在页面加载时执行一些代码,把它放在'head'中。如果您想举一些例子,我们可以帮助您更好。如果你真的想要相同的功能,只需将脚本放在'body'的末尾。 – 2012-07-31 11:33:14

+0

jQuery实际上是开源的,所以如果你想要这种确切的行为,那就去复制那部分 - 这是纯粹的javascript。 – Niko 2012-07-31 11:35:40

+0

可能重复[javascript domready?](http://stackoverflow.com/questions/1206937/javascript-domready) – 2012-07-31 11:36:18

回答

2

一个“实用”的方式只是放置一个script块文档结束之前(甚至是不是真的等同于domready中)

... 
    <script>...</script> 
    </body> 
</html> 

或使用各种纯JS实现domready中的事件之一,像http://snipplr.com/view/6029/domreadyjs/

+0

谢谢F.Calderan ...你提供的链接很棒.. :) – 2012-07-31 12:17:14

0

它有时达到这样

<body> 
<!-- 
All your html tags here 
.... 
.... 
--> 



    <script type="text/javascript"> 
     //this should execute after the above tags and elements have rendered 
    </script> 
</body> 
0

如果你真的想等待 “准备好事件” 比如,你可以使用这样的事:

(function(w,evt,fn){ 
     if (w.addEventListener){// W3C DOM 
      w.addEventListener(evt,fn,false); 
     } 
     else if (w.attachEvent) { // IE DOM 
      w.attachEvent("on"+evt, fn); 
     } 

    })(window,'load',function(){ 
     // your code here 
    }); 

但它确实更好,只需使用一个放置好的'脚本'标签,因为你的代码可能会工作并尽快开始