[英]JQuery call not working after Ajax call succeeds
我有一個看起來像這樣的Ajax呼叫:
$("#start-upload-btn").click(function(){
$.ajax({
type: "post",
url: "",
data: {
newProjectName: $('#project-name').val(),
csrfmiddlewaretoken: csrfToken
},
success: function(data){
$("#file-upload").click();
}
})
});
成功后,我想單擊ID為#file-upload的元素以啟動文件選擇對話框,但是將代碼放入成功功能將無法正常工作。 它在其他任何地方都可以使用。 關於Ajax成功功能的范圍有什么特別之處嗎? 我真的無法弄清楚。
謝謝
從ajax成功回調中發出對任何常規元素(包括按鈕)的click
都沒有固有的問題。
問題在於文件輸入對話框不是“普通元素”。 它具有一些特定的安全限制-其中之一顯然限制了您與其的交互。
以下小提琴對此進行了演示: https : //jsfiddle.net/qhfwobpz/
您會看到在file-upload
click
就可以正常工作。 通過ajax回調進行操作,您會看到調用了該回調,但是文件對話框從不顯示。
該答案提供了有關“為什么”的更多詳細信息,歸結為您可以從用戶發出的事件中打開對話框,但不能純粹以編程方式打開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.