微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IE onchange事件触发bug 与 解决教程

今天遇到了IE一个onchange事件的bug,此bug存在于IE所有的版本(6,7,8)不知道是不是bug,还是IE故意这样设计的?姑且不做评价,我们来看看IE onchange事件的重现过程:

给input等控件添加onchange事件,例如input的checkBox(radio等),在IE下点击选中,并没有触发onchange事件,而需要再次失去焦点(点击页面的任何地方)的时候才可以触发onchange事件,而在Firefox下是点击选中checkBox既可以触发onchange事件的~

bug重现代码
<html>
<head><Meta http-equiv=Content-Type content=text/html; charset=utf-8/>
<title>IE onchange event bug</title></head>
<body>
<input type=checkBox value=1 onchange=alert(this.value); id=demo1/>
<label for=demo1>demo1</label>
<input type=checkBox value=2 onchange=alert(this.value); id=demo2/>
<label for=demo2>demo2</label>
</body></html>

解决方法
在jQuery1.4.2中绑定change事件是完全可以解决的,而在jQuery1.3.2中绑定change事件是不行的,我们可以通过click事件来绑定
如果不怕麻烦也不介意绑定两次事件,可以使用IE自带的onpropertychange事件绑定change事件,断桥残雪测试是可以的,不过这样子在IE下就绑定了两次change事件,不推荐这个方法,如果是checkBox,radio等还是使用click事件来处理吧

出处:http://www.js8.in/541.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐