微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何将“this”传递给setTimeout回调

CSS
.item {
  display: none;
}

HTML

<div>
  <div class="item">machin</div>
  <div class="item">chose</div>
  <div class="item">chouette</div>
  <div class="item">prout</div>
</div>

我使用jQuery,我想让每个.item出现在一个随机的小计时器,如:

JavaScript的

$('.item').each(function () {
  itm = $(this);
  setTimeout(function () {
    itm.fadeIn(1000);
  },Math.floor(Math.random() * 1000));
})

在这里,它将始终包含最后一个项目,因为在所有赋值之后对该函数进行评估.
我不能使用setTimeout()的第三个参数,因为它不会在IE上工作.
出于安全考虑,不建议使用setTimeout()和eval方法.

那么如何通过setTimeout()访问我的对象?

编辑

我知道这个问题已经发布了.
但是,尽管它与each()上下文有些特定.
现在有人完全改变了我的问题的标题,原来是像“setTimeout() – jQuery.each()这个对象参数’

解决方法

不要使用setTimeout,使用jQuery自己的工具.
$('.item').each(function () {
   $(this).delay(Math.random() * 1000).fadeIn();
})

http://api.jquery.com/delay/

工作实例:http://jsfiddle.net/qENhd/

原文地址:https://www.jb51.cc/js/153243.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐