propertychange input change

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

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

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

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

change事件则是须要失去焦点才会触发,全部浏览器都支持该事件。ui

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

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

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

相关文章
相关标签/搜索