jQuery 关于在IE中select控件 的change方法无效问题解决
2013-11-25 10:52
603 查看
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
相关文章推荐
- 关于下拉框option在IE下jquery方法hide()无效的解决办法
- 关于jquery中动态增加select,事件无效的快速解决方法
- 关于jquery中动态增加select,事件无效的快速解决方法
- 关于在IE下对Select标签设置innerHTML无效的问题
- 关于写ATL控件时对控件添加事件事 'IID__IXXXEvents' : undeclared identifier的问题解决方法
- jQuery中,在<input>中使用时间控件,当输入时间后,立刻获得该值(针对于.bind("input propertychange", function(){})不起作用的解决方法)
- select挡住div的解决方法以及frame问题和IE、FLASH与实用代码
- 关于JQuery的serialize方法.让我崩溃一天的问题解决了
- 关于解决JQUERY对INPUT元素Change事件不兼容的问题
- 关于Firefox和IE下的CSS表现的几个问题和解决方法
- jquery在ie7下选择器的问题导致append失效的解决方法
- 关于在IE下对Select标签设置innerHTML无效的问题
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- IE6下div层被select控件遮住的问题解决方法
- 关于IE中出现的内存不能为written问题的解决方法
- 关于checkbox是否选中,用jQuery实现在ie不兼容的解决方法
- jquery html动态生成select标签出问题的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~ 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析