我有3个链接。我想(不真实)每隔2秒通过jquery点击它,直到我点击链接上的(真正的点击)。
我尝试使用此代码:
jQuery(document).ready(function ($) {
var itabs = ["a1", "a2", "a3", , "a4"];
i = 0;
while(true) {
$("#" + itabs[i]).delay(2000).trigger('click');
i++;
if(i > 3) i = 0;
//if(real click on a1 or a2 or a3 or a4) break;
}
});
但它仅适用于i=0
;
我想知道如何添加条件来检查真实点击,然后运行break
;
答案 0 :(得分:2)
setInterval()将执行您要查找的内容。以下是每秒触发一次点击的示例,直到它被触发4次为止。
https://jsfiddle.net/69d8771x/3/
var numclicks = 0;
$('#mybutton').on('click', function(event, triggeredmanually) {
if(triggeredmanually)
alert('click fake');
else
alert('click real');
});
var intervalid = setInterval(function() {
$('#mybutton').trigger('click', [true]);
numclicks++;
if(numclicks == 2) {
clearInterval(intervalid);
alert('done');
}
}, 1000);
答案 1 :(得分:2)
传递给setInterval
的函数在作为第二个参数传递持续时间后重复调用。
var interval;
jQuery(document).ready(function ($) {
var itabs = ["a1", "a2", "a3", "a4"],
arrLen = itabs.length,
i = 0;
// Use interval of 2 seconds
interval = setInterval(function () {
// Show the respective element
$($('#' + itabs[i++ % arrLen]).attr('href')).show().siblings('p').hide();
}, 2000);
$('a').on('click', function () {
// Cleare interval
clearInterval(interval);
// Show corresponding element
$($(this).attr('href')).show().siblings('p').hide();
});
});