每隔x秒重复几次触发('点击')功能

时间:2015-11-18 14:38:36

标签: javascript jquery

我有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;

2 个答案:

答案 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()

传递给setInterval的函数在作为第二个参数传递持续时间后重复调用。

Demo

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();
    });
});