propertychange input change

本文介绍了IE6到IE9中propertychange事件的特点及其兼容性问题,探讨了该事件与input、change事件的区别,并提供了针对不同浏览器的事件监听策略。

IE678 支持propertychange事件,可以监听所有属性(包括自定义属性)的改变事件,包括手动修改输入框文本以及js修改输入框文本。
propertychange事件有个特点就是不支持冒泡,这样就不能实现事件的委托,而且jquery也没有解决这个BUG,所以下面的代码是有问题的:

$("#container").on("propertychange", "input", func);

因为IE9开始支持addEventListener,而且还兼容attachEvent,所以其实IE9也是支持propertychange事件的,只不过只能使用attachEvent来注册事件。
而jquery内部应该是使用addEventListener注册事件的,导致jquery的on()方法在IE9下面注册propertychange事件无效。

IE9+,其他现代浏览器支持input事件,用来监听输入框文本内容的改变,且不需要失去焦点就可以触发。

change事件则是需要失去焦点才会触发,所有浏览器都支持该事件。

其中input事件和change事件都不能监听js操作的修改。

对于IE9+和firefox以及Opera浏览器,支持DOMAttrModified事件,和propertychange事件很相似,监听属性的变化,但是不监听用户操作的修改。

参考:
propertychange event
IE9的一个BUG:propertychange和input事件在拖拽 / 剪切 / 删除时无法触发
IE神奇小bug一则

转载于:https://www.cnblogs.com/3tree/p/4597295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值