我想知道如何在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上查看了可用的答案,但它们似乎对我没用。
答案 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;
答案 1 :(得分:1)
试试这个:
$('.button-download').each(function(i, obj) {
obj.trigger("click");
});