国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關于onchange事件在IE和FF下的表現及解決方法

2024-05-06 16:02:28
字體:
來源:轉載
供稿:網友
本篇文章主要是對關于onchange事件在IE和FF下的表現及解決方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

在最近做的一個項目中,有這么一個功能點:頁面上有一個checkbox,當用戶選擇或者取消選擇該checkbox時會向后臺發一個jsonp請求。當時的實現是為這個checkbox添加一個onchange事件,但結果卻出人意料,為此,我深入的研究了一下,發現了onchange事件在IE和FF下的表現存在著以下問題。

問題①:在FF下,當改變checkbox的選中狀態時,會馬上觸發onchange事件。但在IE下改變checkbox的選中狀態時,并不會馬上出發onchange事件,而是需要等待checbox失去焦點時該事件才會出發。

為了解決這個問題,我在checkbox的onclick事件里添加了this.blur()這條語句,這是由于onclick事件是在onchange事件之前執行的,因而在Onclick事件中添加this.blur()使checkbox失去焦點便馬上會出發onchange事件。可如此一來,又遇到了第二個問題。

問題②:當onclick事件和this.blur同時使用時,在IE下會報錯。

在網上查找了一些資料,終于發現了onpropertychange這個事件。該事件在FF下是不會觸發的。而在IE下,當checkbox的選擇狀態改變時馬上會出發。于是,得出了最終的解決方案:在IE下,為checkbox綁定onpropertychange事件,而在FF下,為其綁定onchange事件。

具體代碼實現如下:

復制代碼 代碼如下:


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
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 中西区| 岳阳市| 高陵县| 高雄市| 嵊州市| 和林格尔县| 北碚区| 六安市| 呼和浩特市| 马公市| 霍林郭勒市| 雅安市| 南通市| 萨嘎县| 广德县| 镇沅| 文水县| 吉安县| 民丰县| 鞍山市| 巴林右旗| 准格尔旗| 石棉县| 玛多县| 涪陵区| 徐水县| 喜德县| 临朐县| 甘肃省| 大余县| 平阴县| 毕节市| 丹棱县| 大城县| 高淳县| 乌审旗| 夹江县| 阿城市| 渑池县| 宣城市| 长汀县|