我正在研究面向对象的内容/图像滑块。
我在运行一次的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');
});
非常感谢任何帮助,谢谢
答案 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。