我試圖防止點擊時使用默認值,用ajax調用頁面並使用this answer觸發點擊完成。ajax調用後的jQuery rebind點擊事件
<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',使用你想成功執行的回調函數。 – Rajesh
如果你不想讓用戶下載'文件。csv'沒有你的ajax函數被首先調用,你需要**不** **那裏的鏈接,句號,直到/除非你決定讓他們下載它。用戶可以使用該鏈接執行各種操作,而不會觸發您的ajax調用。您還需要實現下載塊**服務器端**。 –
我甚至不明白你爲什麼想要這樣做。一旦文件被下載,你爲什麼要連續不斷地下載它?如果有更新的檢查我可以理解,但是這我沒有得到... –