当按钮移动并且没有触发'mouseup'时,如何处理按钮单击?

时间:2013-02-21 13:31:22

标签: javascript jquery dom

我有一个输入框和一个按钮。当用户编辑输入文本并单击按钮时,会发生以下事件:

  1. 按钮 - mousedown
  2. 输入 - change
  3. 输入 - focusout
  4. 按钮 - mouseup [不会发生]
  5. 按钮 - click [不会发生]
  6. http://jsfiddle.net/W2MMb/

    原因:在输入change事件中,包含警告消息的div元素将插入按钮上方的DOM中,从而导致按钮移动。因此,按钮上不会发生mouseup事件,也不会注册任何点击。

    限制:我无法单独处理按钮mouseupmousedown - 这是第三方按钮和事件。

    处理这种情况的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:0)

处理输入keypress事件而不是change事件,但这会导致每次用户按下键时都必须运行可能复杂的代码。它可以被限制等,但这似乎有点矫枉过正。

处理按钮上的mousedown会有点可怕,因为用户希望在mouseup上发生事情。