2013-02-21 86 views
0

我有一個輸入框和一個按鈕。當用戶編輯輸入的文本,點擊按鈕,在發生這些事件:如何處理按鈕點擊按鈕移動和'mouseup'不被解僱?

  1. 按鈕 - mousedown
  2. 輸入 - change
  3. 輸入 - focusout
  4. 按鈕 - mouseup [不會發生]
  5. button - click [does not happen]

http://jsfiddle.net/W2MMb/

原因:在輸入change事件中,包含警告消息的div元素被插入到按鈕上方的DOM中,導致按鈕移動。因此,mouseup事件不會發生在按鈕上,也不會註冊點擊。

限制:我無法單獨處理按鈕mouseupmousedown - 這是第三方按鈕和事件。

什麼是處理這種情況最好的解決辦法?

+0

非常好。做得好 。爲你拍手。 :d – Arpit 2013-02-21 13:35:12

回答

0

處理輸入keypress事件而不是change事件,但是這會造成每次用戶按下按鍵時都會運行潛在複雜代碼的缺點。它可能被扼殺等,但這似乎有點矯枉過正。

處理按鈕上的mousedown會有點恐怖,因爲用戶期望事情發生在mouseup