html button click事件发生前一定会发生focus事件吗?

我这样测试时
<input id="Button1" type="button" value="button" onclick="$('#sp2').text('click');" onfocus="$('#sp1').text('focus');" />
单击一次Button1,sp1和sp2能同时改变

<input id="Button1" type="button" value="button" onclick="alert('click');" onfocus="alert('focus');" />
第一次单击Button1,弹出focus
第二次单击Button,先弹出click,再弹出focus
为什么不是单击总是先focus,在click呢

为什么2个测试不一样呢,2个测试我都是直接单击Button1,没有用键盘使Button1得到焦点


html button click事件发生前一定会发生focus事件吗?
不同的浏览器版本和类型会有区别吗

jeck猫
浏览 1330回答 2
2回答

小怪兽爱吃肉

不一定。比如,假如是通过代码触发的click事件。但,假如是通过UI操作入口触发的事件,肯定要先focus,否则,WINDOWS窗体事件没办法传递给这个button。

子衿沉夜

你的这个行为是打了个擦边球。你不要用什么focus方法,你就对focus事件和click事件进行内容输出就好,不要弹出窗口。这样,自然有问题。
打开App,查看更多内容
随时随地看视频慕课网APP