每隔x秒重复几次触发器('click')功能

repeat several trigger('click') functions every x seconds

本文关键字:功能 触发器 click 几次 每隔      更新时间:2023-09-26

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

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

使用setInterval()。

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