onchange事件在IE和FF下的表現怎么樣?解決方法分享

【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事件 。
具體代碼實現如下:

onchange事件在IE和FF下的表現怎么樣?解決方法分享

相關經驗推薦