如何通过setInterval()在传递参数时从函数内部执行单击?

时间:2012-01-08 02:40:28

标签: 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(),7000); }
    }
}
$(function(){
    cn.hero('#reel', '#reel div', '#reel-left', '#reel-right', 'slide', 300, 500, 'yes');
}); 

非常感谢任何帮助,谢谢

4 个答案:

答案 0 :(得分:4)

您需要一个匿名功能 - 您所拥有的是立即执行

if(auto.match('yes')){ 
    setInterval( function() {
        $(lx).click()
    } ,7000); 
}

将代码传递给setInterval

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

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

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

您是说要运行setInterval但只运行一次代码?这不是setTimeout的作用吗?

答案 3 :(得分:1)

您想要使用setTimeout。不是setInterval。

https://developer.mozilla.org/en/DOM/window.setTimeout