如何在jquery中的特定类的所有按钮上触发click事件

时间:2016-12-10 12:15:45

标签: javascript

我想知道如何在jquery中的所有下载按钮上触发click事件。

我正在使用分享它的WebShare,我想一次下载一个文件夹,因为它包含许多文件,我不能继续下载每个文件。

我尝试使用Downthemall,但它们是按钮,而不是链接。点击它们后,下载就开始了。

无论如何,所有下载按钮都有类button-download

我尝试了以下

var reversed = $("button.button-download").get().reverse();

$(reversed).each(function () {
    $(this).trigger("click").delay(100);
});

但是只下载第一个文件。 我尝试过delay(),这样每次下载都会有延迟,这样Firefox就不会卡住。但是,它仍然只下载第一个并保留其余部分(即不点击其余按钮)

我正在firefox的Inspector控制台中执行脚本。

P.S。我在Stackoverflow上查看了可用的答案,但它们似乎对我没用。

2 个答案:

答案 0 :(得分:3)

delay仅影响动画操作。

如果您想按顺序点击中的每个,点击,请稍等延迟,您可以使用setTimeout

$("button.button-download").each(function(i) {
    var btn = $(this);
    setTimeout(btn.trigger.bind(btn, "click"), i * 100);
});

排队一堆定时器,每100毫秒一个,并在定时器触发时在每个按钮上调用trigger("click")

这是否会以您想要的方式实际导致下载是另一个问题,但这将成功点击按钮。

没有下载的示例,延迟时间较长,因此您可以更轻松地看到它运行:



$("button.button-download").click(function() {
  console.log(this.innerHTML + " clicked");
});

$("button.button-download").each(function(i) {
    var btn = $(this);
    setTimeout(btn.trigger.bind(btn, "click"), i * 500);
});

<button class="button-download">one</button>
<button class="button-download">two</button>
<button class="button-download">three</button>
<button class="button-download">four</button>
<button class="button-download">five</button>
<button class="button-download">six</button>
<button class="button-download">seven</button>
<button class="button-download">eight</button>
<button class="button-download">nine</button>
<button class="button-download">ten</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

试试这个:

$('.button-download').each(function(i, obj) {
    obj.trigger("click");
});