旧版jquery代码不适用于3.1 v

Cap*_*Ron -4 javascript jquery

我的下面的脚本与旧版本的jQuery一起运行良好但不会运行3.1任何建议吗?下面是代码.

$(window).load(function() {
   $('div').each(function(i) {
      $(this).delay((i + 1) * 3000).fadeOut(1000);
   });
});
Run Code Online (Sandbox Code Playgroud)

例如; 下面的JSfiddle使用jQuery 3.1进行更新.它没有运行.

- > http://jsfiddle.net/hh42R/138/

但是当你在同一个小提琴中将它改为jQuery 1.6时,它可以正常工作而没有问题.

Ror*_*san 5

问题是load()方法.在jQuery 3.x中,这不再是一个事件处理程序.

相反,你需要使用on('load', fn):

$(window).on('load', function() {
  $('div').each(function(i) {
    $(this).delay((i + 1) * 3000).fadeOut(1000);
  });
});
Run Code Online (Sandbox Code Playgroud)
div {
    width: 20px;
    height: 20px;
    border: 1px solid #C00;
    background-color: #FFF;
    display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
Run Code Online (Sandbox Code Playgroud)

  • 参考:https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed (2认同)
  • 没问题,很乐意提供帮助.仅供将来参考,我认为暗示是模糊问题,而不是问题的本质. (2认同)