Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery将seelcted类内容传递给settimeout_Javascript_Jquery - Fatal编程技术网

Javascript Jquery将seelcted类内容传递给settimeout

Javascript Jquery将seelcted类内容传递给settimeout,javascript,jquery,Javascript,Jquery,在jquery循环中,我试图将所选类的内容传递到每个循环中的settimeout函数中。 下面的代码是我迄今为止尝试过的代码 $( ".success_messages" ).each(function() { setTimeout(function () { showNotification($(this).text()); }, 3000)

在jquery循环中,我试图将所选类的内容传递到每个循环中的settimeout函数中。 下面的代码是我迄今为止尝试过的代码

$( ".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)
});