中文输入法触发input事件 js绑定事件:addEventListener和on的区别 select下拉框用empty()方法 清空option

中文输入法触发input事件

compositionstart
当浏览器有非直接的文字输入时, compositionstart事件触发.

compositionend
当浏览器是直接的文字输入时, compositionend事件触发

解决方法:
在这里插入图片描述
这里还有一个问题:
在有些浏览器如谷歌中,先响应input后响应compositionend,此时状态inputLock为true导致input内部方法无法执行。
若要解决这个问题:
可以在compositionend中也加上input方法体,但是这样太繁琐。
另一种方法是给input内部方法设置了setTimeout,0.
在这里插入图片描述
这些方法均有可能导致在其他环境下input内部方法被执行两次。

input事件中文触发多次问题研究
https://www.cnblogs.com/mopagunda/p/8343031.html

js绑定事件:addEventListener和on的区别

为某元素设定事件触发函数时,可能会觉得addEventListener和on事件的功能差不多,但是,addEventListener除了可以设置元素触发顺序外,还能多次绑定事件,因为 on 事件多次绑定的话会出现覆盖。

举例说明:
在这里插入图片描述结果会依次提示“message1”,“message2“。

但是js这么写的话:
在这里插入图片描述
这里就只会提示最后一个“message2”,因为onclick作为对象div1的一个属性,第二次对其进行赋值就会覆盖之前的函数值,这样on事件在某些场合就不适用了。

猜你喜欢

转载自blog.csdn.net/weixin_43322208/article/details/85081511
今日推荐