如何在onChange之前触发onClick事件(即使值已更改)?

时间:2015-03-25 11:18:36

标签: javascript onclick onchange

大家好,对不起我的英文。

jdfiddle之后,我遇到了一个我不明白的问题。

首先我更改输入的值,然后单击按钮,我希望看到的是“点击”但我看到“更改”意味着在onclick之后调用onchange。< / p>

<input type="text" onChange="alert('change')" />
<button type="button" onClick="alert('click');">Click!</button>

我在post上发现,因为Chrome会在onchange事件之前触发onclick事件。但是我并不像这篇文章那样有同样的需求,因为我的事件没有在同一个标​​签中声明。其次,如果我点击按钮,我只想执行onclick功能,而不是onclick然后onchange(此方法包括使用onMouseDown)。< / p>

你有一个很好的方法吗?

1 个答案:

答案 0 :(得分:0)

好的,我可以看到你真的不喜欢这个。 您可以让on change功能先运行,然后再看看有什么焦点,如果是那个按钮,你会知道它被点击了,因此是失去焦点的原因。

在更改功能运行时你无法检查这个,因为此时身体仍然有焦点..

<head>
  <script language="javascript">
  function focussed()
  {
    var triggerElement = document.activeElement
    alert(triggerElement)
    console.info(triggerElement)
  }

  function change()
  {
    alert("change")
    setTimeout(focussed, 1)
    return true
  }
  </script>

</head>
<body>
    <input type="text" onChange="alert('change')" />
    <button type="button" onClick="alert('click');">Click!</button>
</body>