我正在尝试进行下载功能(只能在选中复选框的位置下载并且已经完成下载功能)。
当我只检查一个时,它工作正常。很好下载
但是我也想检查很多并下载。
我将download_file()设置为仅一次需要一个
download_file()是onClick事件,并以此方式执行
d_tr.querySelector('.test > a').click();
我想要的是在第一个函数完成后执行另一个函数。
与Javascript或Jquery无关。
js $(document).ready(function(){ $(“。compress”)。click(function(){
var size = document.getElementsByName("check").length;
for(var i = 0; i < size; i++){
if(document.getElementsByName("check")[i].checked == true){
var d_val=document.getElementsByName("check")[i].value;;
var d_td = document.getElementById(d_val);
var d_tr = d_td.parentElement;
d_tr.querySelector('.test > a').click();
$.when(d_tr.querySelector('.test > a').click()).done(function () {
console.log("finished");
});
}
}
});
});
var oneClick = true;
function download_file(event, filename) {
if (oneClick) {
oneClick = false;
req = request({
method: 'GET',
uri : fileURL,
});
var out = fs.createWriteStream(finalPath);
req.pipe(out);
req.on('response', function (data) {
console.log();
});
req.on('data', function (chunk) {
console.log();
});
req.on('end', function () {
oneClick = true;
document.getElementById(subW).onclick = null;
});
}
else {
alert('somethins is downloading');
}
}
html
<tr>
<td id="10Mb.dat"><input type="checkbox" name='check' value='10Mb.dat'/>File10MB
</td>
<td class="test"><a class="checkBtn checkBtn1" id="checkBtn1" onclick="download_file(event, '10Mb.dat')">download</a></td>
</tr>
<tr>
<td id="100mb.bin"><input type="checkbox" name='check' value='100mb.bin' />File100MB
</td>
<td class="test"><a class="checkBtn checkBtn2" id="checkBtn2" onclick="download_file(event, '100mb.bin')">download</a></td>
</tr>
<button class="btn btn-primary compress">download start</button>