我遇到了這個問題,其中用戶的單個動作應該觸發兩個事件,但它只觸發第一個事件。單用戶行動發射兩個事件 - 第二個事件不會觸發
場景:
用戶輸入一些文本到一個特殊字段修改佈局對事件的內容,輸入文字,而無需離開後場,他們點擊一個按鈕。
發生了什麼事?
我在文本框上單擊事件,然後單擊按鈕上的事件。我所看到的是專注事件被解僱,但點擊事件從來沒有。
我這個包裹在一個的jsfiddle:
$('#theText').focusout(function(){
$("#focusevent").text("Focusevent");
console.log("focus");
});
$('#theButton').click(function(){
$("#clickevent").text("Clickevent");
console.log("click");
});
所以,如果你在文本框中單擊然後單擊我期望這兩個事件來觸發按鈕,但我們只看到焦點事件。
我通過讓mousedown事件觸發按鈕而不是點擊事件(這會在focusout事件之前觸發)來爲此設置一個臨時修復,但這導致了一些我不想看到的其他行爲和問題。由於那些我認爲最佳的解決方案是找到一種方法來獲得焦點和點擊事件。有沒有人有關於如何解決這個問題的想法?
編輯:看到最初的反應之後,我挖得更深一些,這裏的問題是,事件的內容事件改變頁面佈局,非常輕微地按下按鈕的位置下來。點擊事件在聚焦完成後觸發,但由於按鈕不再位於完全相同的位置,因此不會發生任何事情。
這裏有一個更新的小提琴,顯示我的問題 http://jsfiddle.net/fCz6X/11/
http://jsfiddle.net/fCz6X/8/使用的console.log – megawac
改變了你的代碼將文本添加到頁面insted的警報的 - 工作正常[這裏](HTTP:// jsfiddle.net/fCz6X/9/) – 2013-10-29 15:31:50
@MikeW文本實際上已經實際移動按鈕,例如)http://jsfiddle.net/fCz6X/10/ – codewarrior