【发布时间】:2015-03-25 11:18:35
【问题描述】:
大家好,对不起我的英语。
按照这个jdfiddle,我有一个我不明白的问题。
首先我更改输入的值,然后单击按钮,我希望看到的是“单击”,但我看到“更改”意味着 onclick 在 onchange 之后被调用。
<input type="text" onChange="alert('change')" />
<button type="button" onClick="alert('click');">Click!</button>
我在post 上发现这是因为 chrome 在onclick 事件之前触发了onchange 事件。但是我真的没有和这篇文章一样的需求,因为我的事件没有在同一个标签中声明。其次,如果我点击按钮,我只想执行onclick 函数,而不是onclick 然后onchange(此方法包括使用onMouseDown)。
你有什么好的方法吗?
【问题讨论】:
-
在您的情况下,onchange 事件肯定会在 onclick 事件之前被调用,因为 Change 事件被执行,因为当您单击按钮时焦点将超出文本框。
-
这是按预期工作的,当您按下按钮时,您将注意力集中在更改的元素上,该事件将首先触发。据我了解您的问题,您应该删除 onchagen 事件??
-
@Henrik 如果我想将代码保留在 onchange 事件中怎么办?
-
你为什么要这样做? - onChange 检测字段何时不再具有焦点,你真的不应该依赖它。最好寻找 OnKeyUp 或类似事件..
标签: javascript onclick onchange