jQuery 关于在IE中select控件 的change方法无效问题解决

简介:
jquery封装了一些常见的事件设置接口,如:
$("#dom_id").change(function(){ 实现代码 });

但令人蛋疼的是在MSIE中,针对select或input元素的这样的事件绑定却不能正确触发,
该问题在sof上已有详述

里面提到的解决方案经测试都不是很爽,自己鼓捣了一个种解决方案,在项目中通过。

原理是把事件主体放到data中,,在MSIE环境中设置onChange属性,而在非MSIE环境中通过.change()方式触发,实现代码是(jquery 1.3.2测试通过):

$("#viewByOrg")
.attr('onChange', $.browser.msie ? "$(this).data('onChange').apply(this)" : "")
.change( function(){if(!$.browser.msie)$(this).data('onChange').apply(this)} )
.data('onChange',function(){ 实现代码 });


不算优雅但可用 That's it。

BTW, jquery 1.4.2的onchage事件也有问题,见:
odd-behavior-onchange-event









本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1331009,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
JavaScript
用JQuery实现选中select里面的option显示对应的div
用JQuery实现选中select里面的option显示对应的div
在masm32中获取IE版本的方法2
在masm32中获取IE版本的方法2
在masm32中获取并显示IE版本的方法1
在masm32中获取并显示IE版本的方法1
|
6月前
|
JavaScript 索引
jquery操作select(取值,设置选中)
jquery操作select(取值,设置选中)
173 0
|
存储 JavaScript 前端开发
Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同
Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同
140 1
|
Web App开发
clearTimeout 方法在IE上的兼容问题
clearTimeout 方法在IE上的兼容问题
70 0
|
JavaScript 前端开发
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
92 0
关于 getBoundingClientRect 方法在360极速浏览器的 IE 兼容模式下获取 documentElement 宽度比在 IE 浏览器下面多 4px 的问题
|
JavaScript 前端开发
【前端】用jquery或js获取select标签中选中的option值及文本
用jquery或js获取select标签中选中的option值及文本
1184 0
|
JavaScript
jQuery多级联动美化版Select下拉框
在线演示 本地下载
1263 0