jquery触发器多次单击

时间:2015-11-18 21:13:12

标签: javascript jquery click

我有一个包含4个链接的标签。

我想通过jQuery点击它。我用这个作为第一个链接:

$("a[data-search='a1']").delay(2000).trigger('click');

它有效。

现在我也想为其他链接做这件事:

$("a[data-search='a1']").delay(2000).trigger('click');
$("a[data-search='a2']").delay(2000).trigger('click');
$("a[data-search='a3']").delay(2000).trigger('click');
$("a[data-search='a4']").delay(2000).trigger('click');

但它只会在第一次触发时运行一次。

我也试过间隔法(请不要建议)。我认为 我不能使用trigger('click')multipile。

有什么不对?

现场演示:https://jsfiddle.net/1fvqvjb3/8/

1 个答案:

答案 0 :(得分:1)

我可能会误解你正在尝试做什么,但看起来好像你想要连续点击每个链接。 jQuery .delay()函数是非阻塞的,因此在每次点击之间等待2秒;相反,将会有一个2秒的延迟,然后同时点击所有4个链接,这看起来似乎只是点击了一个链接。

我不确定"区间方法"的含义。您不希望提出建议,但也许解决问题的最佳方法是使用setTimeout()

(function f(i) {
    setTimeout(function() {
        $('a[data-search="a' + i + '"]').click();
        if (i < 4) f(i+1);
    }, 2000);
})(1);

这是IIFE的一个例子,如果您还不熟悉它,我强烈建议reading up on