大家好,对不起我的英文。
在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>
你有一个很好的方法吗?
答案 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>