Javascript Jquery将seelcted类内容传递给settimeout
在jquery循环中,我试图将所选类的内容传递到每个循环中的settimeout函数中。 下面的代码是我迄今为止尝试过的代码Javascript Jquery将seelcted类内容传递给settimeout,javascript,jquery,Javascript,Jquery,在jquery循环中,我试图将所选类的内容传递到每个循环中的settimeout函数中。 下面的代码是我迄今为止尝试过的代码 $( ".success_messages" ).each(function() { setTimeout(function () { showNotification($(this).text()); }, 3000)
$( ".success_messages" ).each(function() {
setTimeout(function () {
showNotification($(this).text());
}, 3000)
});
我怎样才能做好呢
编辑:如果您的意思是希望在单击某个元素时显示通知(),我希望每个迭代根据所选类的长度延迟一定的时间段:
$(“.success\u messages”)。单击(函数(){
var按钮=这个;
setTimeout(function(){/注意,这个
关键字绑定到它在其中调用的函数
为了能够在嵌套函数中使用它,您必须首先缓存它:
$( ".success_messages" ).each(function(i) {
var $this = $(this);
setTimeout(function (i) {
showNotification($this.text());
i++;
}, 3000)
});
以下是如何做到这一点:)查看每一个-找到i的用法以及:D
var i=1;
$(“.success_messages”)。每个(函数(迭代器、元素){
setTimeout(函数(){
//showNotification($this.text());
log($(element.text());
},1000*i++)
});
信息1
信息2
消息3
您的意思是……当用户单击元素时,对吗?console.log(这)
在setTimeout回调中,查看它是什么。调试的第一步是确认事情是您认为的那样。最简单的方法是开始记录事情。根据元素长度单击元素或循环,因此您尝试将i
传递到回调并递增是很奇怪的。你想在那里做什么?你看起来根本没有使用i
。如果你告诉我你实际上想完成什么,会容易得多。从技术上讲,i++
是有效的语法。我同意这在OP中没有意义,:)在这个宇宙以及其他已知和未知的宇宙中,它从来没有任何意义!编写函数参数…brrrrrr,请不要!可能您正在迭代与其他元素相关的元素,这些元素是“#something”+(i+1)
。也许不是最佳实践,但也不是无稽之谈。i+1
不是i++
,因此我无法理解你的观点。在函数中重写参数纯粹是邪恶的,从来没有必要。你可以免费拥有任意多的局部变量。只要是a,两个都在i
上执行操作rgument与局部变量是同一件事,前提是您处理的是原语。两者都是闭包的作用域,对两者的更改不存在于闭包之外。两者都是变量。变量是可变的。
$( ".success_messages" ).each(function(i) {
var $this = $(this);
setTimeout(function (i) {
showNotification($this.text());
i++;
}, 3000)
});