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
$("#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,如需转载请自行联系原作者