和onChange事件IE和FF下溶液的性能

和onChange事件IE和FF下溶液的性能
在最近的项目中,有这样一个功能点:网页上有一个复选框,当用户选择或取消选择该复选框,它将发回JSONP请求。当时实施的是添加一个onchange事件复选框,但结果是意想不到的。为此,我进行了深入的研究,发现存在以下的OnChange事件IE和FF下的性能问题。

问题1:在FF,当复选框的选中状态改变,将立即触发onchange事件。但当复选框选中状态改变下即onchange事件不会立刻出发,但事件在开始的时候会checbox等待失去焦点。

为了解决这一问题,我添加的复选框,onclick事件this.blur(中)这一说法,这是因为onclick事件是在onChange事件执行,并在Onclick事件this.blur加法(复选框)将立即失去onchange事件的焦点。在这种方式中,有二其他问题。

问题2:当onclick事件和this.blur同时使用,误差会在IE了

我们发现了一些互联网上的信息,终于找到了onpropertychange事件。此事件将不会触发下FF,即当复选框的选择状态的变化,它会立即开始。因此,最终的解决方案是:在IE中,达到的onpropertychange事件绑定复选框,和onchange事件势必在FF。

具体代码实现如下:
复制代码代码如下所示:
var ua = navigator.useragent.tolowercase();
var = null;
var浏览器{
Msie:(S = ua.match( / MSIE *({ D 。} +)/))的{ 1 }:假,
火狐:(S = ua.match( / / Firefox({ D 。} +)/))的{ 1 }:假,
铬:(S = ua.match( / /铬({ D 。} +)/))的{ 1 }:假,
歌剧:(S = ua.match( /歌剧。(({ +)}) { 1 }:false,
野生动物园:(S = ua.match( / / varsion({ D 。} +)* Safari /))的{ 1 }:假
};
如果(浏览器。MSIE){ / /如果IE浏览器
复选框。onpropertychange =函数(){
/ /做某事
}
}
别的{
复选框。onchange =函数(){
做某事
}
}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部