我想跟蹤一組頁面上的一組UI組件上的鼠標點擊事件。爲此,我正在使用以下jquery/ajax調用(刪除u):jquery ajax發佈取消
1.Ajax調用將添加點擊日誌記錄。
myClickLogger = {
endpoint: '/path/to/my/logging/endpoint.html',
logClickEvent: function(clickCode) {
$.ajax({
'type': 'POST',
'url': this.endpoint,
'async': true,
'cache': false,
'global': false,
'data': {
'clickCode':clickCode
},
'error': function(xhr,status,err){
alert("DEBUG: status"+status+" \nError:"+err);
},
'success': function(data){
if(data.status!=200){
alert("Error occured!");
}
}
});
}
};
2.JQuery點擊事件,這將調用AJAX記錄器(該clickCode是一個標識符用於哪個按鈕/圖像被單擊):(1)
$(document).ready(function() {
$(".myClickEvent[clickName]").click(function() {
var clickCode = $(this).attr("clickName");
myClickLogger.logClickEvent(clickCode);
});
});
上面AJAX調用是「當按鈕點擊被追蹤到新頁面時,通過瀏覽器取消「取消」。
如果我將'aysnc'更改爲'false',則ajax調用成功。
此外,單擊未成功進入新頁面的事件。只有取得新頁面的點擊事件纔會被取消。
我不想使呼叫同步。
任何想法,可能是什麼問題?如何確保在click事件進入新頁面之前完成異步調用?
你必須使用一個同步調用,否則表格將被提交,用戶將被帶到新的一頁。當表單提交後,頁面卸載,因此AJAX調用被取消 - 這就是瀏覽器的工作方式... – Ian
任何人都可以告訴我有關在ajax調用中使用的單引號嗎?與單引號一起工作,還有''type''或''success'',因爲我沒有使用單引號.. –
你不必使用同步調用,你只需要確保工作不是'直到異步調用完成後才完成。 –