Javascript 为什么onchange会在onclick进入Chrome之前点火?

Javascript 为什么onchange会在onclick进入Chrome之前点火?,javascript,events,Javascript,Events,我仍然会利用这个社区的专业知识和可用性。 我的问题是:如果我们有一个类似于 <input name="" type="checkbox" onClick="first()" onChange="second()"> <script type="text/javascript"> function first(){ console.log('first') } function second(){ console.log('second')

我仍然会利用这个社区的专业知识和可用性。
我的问题是:如果我们有一个类似于

<input name="" type="checkbox"  onClick="first()" onChange="second()">
<script type="text/javascript">
function first(){
    console.log('first')
    }
function second(){
    console.log('second')
    }
</script>

函数优先(){
console.log('first')
}
函数第二(){
console.log('second')
}
在firefox中,onclick事件在onchange之前触发,而在chrome中则相反?
谢谢你的回答,也许我没有用最好的方式解释

我知道使用onMuseDown可以解决问题,但我想了解Chrome中onchange和onclick事件出现这种行为的原因,因为
onchange
是由于
onclick
触发的,一个肮脏的解决方案可能是使用
onMuseDown
而不是
onclick


但我也想知道为什么你真的需要两者;)

为什么你想同时使用它们?我更喜欢选中复选框以实现跨浏览器的一致性。顺序取决于浏览器的实现参见:Chrome只需按照遇到事件的顺序触发事件,执行
onChange=“second()”onClick=“first()”
将反转它。@KyleNeedham:谢谢你的回答,但如果我在我的chrome版本中反转事件,结果仍然是相同的。我知道onMouseDown代码可以工作,但我想了解这种行为的原因,谢谢你的回答。