$('.button').click();
上面的代码非常适合单击页面上的所有按钮,但是我试图每半个或每秒左右触发一次点击,直到jQuery对象发出循环为止。
$(function(){
$('.button').each(function(){
setInterval('$(this).click()', 500);
});
});
有人能告诉我怎么做吗?上面的代码显然不起作用。我错过了什么吗?
答案 0 :(得分:2)
请勿在{{1}}或setInterval()
中使用字符串。始终传递函数对象:
setTimeout()
编辑:如果你想要的只是触发点击,这也可以更简单地表达为(感谢icambron):
$(function() {
$('.button').each(function(){
var button = $(this);
setInterval(function() {button.click();}, 500);
});
});
答案 1 :(得分:1)
$(function(){
var buttons = $('.button');
var len = buttons.length;
var intr = new Array();
buttons.each(function(i){
var $this = $(this);
var timeClick = function(){
if(i < len ){
$this.click();
}
else{
clearInterval(intr[i]);
}
};
intr[i] = setInterval(timeClick, 500);
});
});
答案 2 :(得分:1)
这个怎么样?
setInterval(function(){ $('.button').click();},500);
答案 3 :(得分:1)
您可以构建一个按顺序执行点击的功能,每隔N
指定的毫秒超时点击一次,逐个迭代匹配的元素:
用法:
clickQueue($('.button'), 500);
功能:
var clickQueue = function ($els, timeout) {
var n = $els.length, i = 0;
function click () { // internal function
$els.eq(i++).click(); // click the element and increment i
if (i < n){
setTimeout(click, timeout); // execute again if possible
}
}
click(); // invoke for first time
};