Javascript 传递参数时,如何让setInterval()从函数内部执行单击?

Javascript 传递参数时,如何让setInterval()从函数内部执行单击?,javascript,jquery,Javascript,Jquery,我有一个面向对象的内容/图像滑块。 我在setInterval()中遇到问题,只运行了一次。 我将字符串值传递给我的函数cn.hero(“”,“”,“”,“”,“”,0,0,'yes')匹配后应开始自动触发单击 这是我的密码: cn = { hero:function(r,rc,lx,rx,fx,fs,ss,auto){ $(lx).click(...} if(auto.match('yes')){ setInterval($(lx).click(),7

我有一个面向对象的内容/图像滑块。 我在setInterval()中遇到问题,只运行了一次。 我将字符串值传递给我的函数
cn.hero(“”,“”,“”,“”,“”,0,0,'yes')匹配后应开始自动触发单击

这是我的密码:

cn = {
    hero:function(r,rc,lx,rx,fx,fs,ss,auto){

        $(lx).click(...}
        if(auto.match('yes')){ setInterval($(lx).click(),7000); }
    }
}
$(function(){
    cn.hero('#reel', '#reel div', '#reel-left', '#reel-right', 'slide', 300, 500, 'yes');
}); 

非常感谢您的帮助,谢谢您是说您想运行
setInterval
但只运行一次其代码吗?这不是
setTimeout
所做的吗?

你是说你想运行
setInterval
但只运行一次它的代码吗?这不是
setTimeout
所做的吗?

您需要一个匿名函数——您所拥有的是立即执行

if(auto.match('yes')){ 
    setInterval( function() {
        $(lx).click()
    } ,7000); 
}
当您将代码传递给
setInterval
时,如

setInterval($(lx).click(), 7000);

代码立即执行;jQuery将解析该选择器,并立即在那里触发click事件。

您需要一个匿名函数——您所拥有的是立即执行

if(auto.match('yes')){ 
    setInterval( function() {
        $(lx).click()
    } ,7000); 
}
当您将代码传递给
setInterval
时,如

setInterval($(lx).click(), 7000);

代码立即执行;jQuery将解析该选择器,然后立即在那里触发click事件。

您想使用setTimeout。没有设置间隔


您想使用setTimeout。没有设置间隔


您没有将函数传递给
setInterval
,而是调用函数并将其结果传递给
setInterval
。(
$(lx).click()
实际调用
click()
函数。)

在代码中的适当位置尝试以下操作:

setInterval(function() { $(lx).click() },7000);

这将封装您实际想要在匿名函数中进行的函数调用,并将该匿名函数传递给
setInterval
。这是一种常见的技术。

您不是将函数传递给
setInterval
,而是调用函数并将其结果传递给
setInterval
。(
$(lx).click()
实际调用
click()
函数。)

在代码中的适当位置尝试以下操作:

setInterval(function() { $(lx).click() },7000);

这将封装您实际想要在匿名函数中进行的函数调用,并将该匿名函数传递给
setInterval
。这是一种常见的技术。

不,当我将字符串“yes”传递给参数“auto”时,我需要cn.hero()函数每7秒执行一次。Kolink是正确的!您的意思是,当if语句在7s-click事件之后出现时,这里没有可对抗性,click事件在第一次迭代(lx)时被触发,因此您只需要一个调用,即setTimeoutNo。当我将字符串“yes”传递给参数“auto”时,我需要cn.hero()函数每7秒执行一次。Kolink是对的!您的意思是,当if语句在7s-click事件之后出现时,这里没有可对抗性,click事件在第一次迭代(lx)时被触发,因此您只需要一个调用,即settimeout,这就是您需要的答案+1为了比我更好地理解被问到的问题:D@Kolink-谢谢。OP确实说要让setInterval运行一次,但他也说他想开始自动触发点击。第一个语句暗示他需要
setInterval
,后者可能/可能不需要。你对这个问题的理解绝对是合理的。但不管怎样,他都需要一个匿名者function@Nasir-呜!那么你想让这个点击运行一次,还是重复?@Nasir-没关系,我看到了你的其他评论。你想让它每7秒发射一次。这个问题本来可以说得更清楚,但我认为这足够清楚,它应该反复运行。我相信你的答案是正确的:我发布了几乎相同的答案+这是你需要的答案+1为了比我更好地理解被问到的问题:D@Kolink-谢谢。OP确实说要让setInterval运行一次,但他也说他想开始自动触发点击。第一个语句暗示他需要
setInterval
,后者可能/可能不需要。你对这个问题的理解绝对是合理的。但不管怎样,他都需要一个匿名者function@Nasir-呜!那么你想让这个点击运行一次,还是重复?@Nasir-没关系,我看到了你的其他评论。你想让它每7秒发射一次。这个问题本来可以说得更清楚,但我认为这足够清楚,它应该反复运行。我相信你的答案是正确的:我发布了几乎相同的答案+1用于首先进入。问题不是它应该只运行一次,对于这一点,您可以正确地使用
setTimeout
,问题是它只运行一次,并且应该重复运行。问题不是它应该只运行一次,对于这一点,您可以正确地使用
setTimeout
,问题是它只运行一次,并且应该重复运行。+1-你是另一个看到立即执行代码的韩元+1-你是另一个看到立即执行代码的韩元