我有一个包含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。
有什么不对?
答案 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。