這是一個非常基本的JavaScript問題,可能重複,但我不知道答案!jQuery/JavaScript:中斷事件?
我的代碼如下:
function userlist_change(myval, function_type) {
// relatively slow code involving Ajax call
// based on Ajax results, change some client-side stuff
}
$("#subjectlist").change(function() {
userlist_change($("#subjectlist").val(), 'change');
}).change();
$("#subjectlist").keypress(function() {
userlist_change($("#subjectlist").val(), 'keypress');
});
我有問題,如果.change()
事件被調用時,userlist_change
功能揭開序幕,這是相對緩慢的。如果用戶再次更改列表(例如,通過鍵入),我的代碼將等待userlist_change
完成,然後用新值重新啓動它。
這在UI中看起來很奇怪,因爲更改客戶端的任何操作都需要幾秒鐘的時間 - 有時第一次調用的結果僅在用戶已經進行第二次調用後纔會出現。
當.change()
或`keypress()事件被觸發時,有什麼辦法可以中斷任何現有的userlist_change
進程嗎?
[編輯]什麼是理想的是一個簡單的'用這個名字殺死任何正在運行的功能'命令 - 這可能嗎?或者我真的不得不擺弄定時器?!