【发布时间】:2015-11-04 13:00:02
【问题描述】:
我试图阻止默认点击,使用 ajax 调用页面并触发点击完成,使用 this answer。
<a id="mylink" href="file.csv" download >Dowload</a>
<script>
var flag = false;
$('#mylink').on('click',function(e) {
// Result is the same with :
//$(document).on("click","#mylink",function(e){
if (flag === true) {
flag = false;
return;
}
e.preventDefault();
$.ajax({
url: "index.php?controller=admin&action=refreshFile",
complete: function() {
console.log('control'); // This is called
flag = true;
$('#mylink').trigger('click'); // This is not called
}
});
});
</script>
通话有效,但链接未触发。当在单独的函数中设置 ajax 调用时,结果是相同的。
【问题讨论】:
-
而不是
preventDefault,使用您想要在成功时执行的回调函数。 -
如果您不希望用户下载
file.csv而不首先调用您的 ajax 函数,您需要 not 在那里有该链接,句号,直到/除非你决定让他们下载它。用户可以使用该链接执行各种操作,而不会触发您的 ajax 调用。您还需要实现下载块服务器端。 -
我什至无法理解您为什么要这样做。下载文件后,您为什么要一遍又一遍地不断下载它?如果有一个我能理解的更新检查,但我不明白......
-
@T.J.Crowder 谢谢,但这是一个值得信赖的用户环境,他们没有兴趣这样做。
-
@BradEvans 我不确定代码是否符合您的想法。
标签: javascript jquery ajax