IE onchange事件触发bug 与 消除教程

在 相应设置的页面举办引用就能够:

在近期做的七个品种中,有诸如此类贰个意义点:页面上有三个checkbox,当用户挑选如故撤除选用该checkbox时会向后台发两个jsonp请求。当时的落到实处是为那几个checkbox加多三个onchange事件,但结果却忽然,为此,小编深远的研究了弹指间,开掘了onchange事件在IE和FF下的表现成在着以下难点。

在方今做的叁个门类中,有那般四个意义点:页面上有三个checkbox,当用户挑选依然吊销接纳该checkbox时会向后台发贰个jsonp请求。当时的兑现是为这一个checkbox增多四个onchange事件,但结果却出人意料,为此,小编深入的切磋了一晃,开掘了onchange事件在IE和FF下的变现成在着以下难题。

消除方法
在jQuery1.4.第22中学绑定change事件是全然能够缓慢解决的,而在jQuery1.3.第22中学绑定change事件是不行的,大家能够经过click事件来绑定
一旦不怕麻烦也不介意绑定一次事件,能够动用IE自带的onpropertychange事件绑定change事件,断桥残雪测试是能够的,不过如此子在IE下就绑定了一回change事件,不推荐那几个办法,假使是checkbox,radio等依旧利用click事件来拍卖啊

javascript checkbox/radio onchange无法包容ie8处理措施

问题②:当onclick风浪和this.blur同一时间接选举用时,在IE下会报错。

问题①:在FF下,当改换checkbox的入选状态时,会应声触发onchange事件。但在IE下改造checkbox的入选状态时,并不会立时出发onchange事件,而是供给静观其变checbox失去核心时该事件才会出发。

function forIe(){ 
  if($.browser.msie){ //判断浏览器是否为ie 
    $("input[type='checkbox']").click(function(){ 
      this.blur(); //先失去焦点,执行你的自定义的操作 
      this.focus();//再获取焦点,是鼠标还在那个地方,好进行下一步的操作 
    }) 
  } 
} 

复制代码 代码如下:

var ua=navigator.userAgent.toLowerCase();
var s=null;
var browser={ 
  msie:(s=ua.match(/msie\s*([\d\.]+)/))?s[1]:false, 
  firefox:(s=ua.match(/firefox\/([\d\.]+)/))?s[1]:false, 
  chrome:(s=ua.match(/chrome\/([\d\.]+)/))?s[1]:false, 
  opera:(s=ua.match(/opera.([\d\.]+)/))?s[1]:false, 
 
safari:(s=ua.match(/varsion\/([\d\.]+).*safari/))?s[1]:false 
};
if(browser.msie){//若为IE浏览器
    checkbox.onpropertychange=function(){
         //do someting
    }
}
else{
    checkbox.onchange=function(){
        //do something
    }
}

前些天遇上了IE一个onchange事件的bug,此bug存在于IE全体的本子(6,7,8)不掌握是或不是bug,还是IE故意那样设计的?姑且不做褒贬,大家来探望IE
onchange事件的再次出现进度:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图