身体负荷上的触发事件完成js/jquery

pra*_*vin 19 html javascript jquery

我想使用javascript/jquery在页面加载完成时触发一个事件.

页面加载完全完成后,有没有办法触发事件或调用简单函数.

如果你有任何参考,请建议大家.

T.J*_*der 27

每个人都提到了ready函数(及其快捷方式),但即使在此之前,您也可以将代码放在script结束body标记之前的标记中(这是YUI和Google Closure人员推荐的),如下所示:

<script type='text/javascript'>
pageLoad();
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

此时,该脚本标记上方的所有内容都可在DOM中使用.

所以您的选择按发生顺序排列:

  1. 最早的:script在关闭body标签之前调用标签中的函数.DOM 准备就绪(根据Google Closure人员的说法,他们应该知道;我也在一堆浏览器上测试过它).

  2. 早期:jQuery.ready回调(及其快捷方式).

  3. 所有包含图像的页面元素完全加载之后:window onload事件.

这是一个实例:http://jsbin.com/icazi4,相关提取:

</body>
<script type='text/javascript'>
  runPage();

  jQuery(function() {
    display("From <tt>jQuery.ready</tt> callback.");
  });

  $(window).load(function() {
    display("From <tt>window.onload</tt> callback.");
  });

  function runPage() {
    display("From function call at end of <tt>body</tt> tag.");
  }

  function display(msg) {
    var p = document.createElement('p');
    p.innerHTML = msg;
    document.body.appendChild(p);
  }
</script>
Run Code Online (Sandbox Code Playgroud)

(是的,我本可以使用jQuery作为display函数,但我开始使用非jQuery模板.)


Bru*_*oLM 25

当页面完全加载时(dom,images,...)

$(window).load(function(){
    // full load
});
Run Code Online (Sandbox Code Playgroud)

当DOM元素加载时(不必加载所有图像)

$(function(){
    // DOM Ready
});
Run Code Online (Sandbox Code Playgroud)

然后你可以触发任何事件

$("element").trigger("event");
Run Code Online (Sandbox Code Playgroud)


Sar*_*raz 9

jQuery的:

$(function(){
  // your code...this will run when DOM is ready
});
Run Code Online (Sandbox Code Playgroud)

如果要在加载所有页面资源(包括images/frames/DOM)后运行代码,则需要使用load事件:

$(window).load(function(){
  // your code...
});
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

window.onload = function(){
  // your code...
};
Run Code Online (Sandbox Code Playgroud)