JS事件在IE與FF中的區(qū)別詳細(xì)解析
之道的易搜項目中的搜索分類是通過JS動態(tài)生成的,每個生成的元素都要動態(tài)的添加屬性、事件。其中,添加屬性可以采用賦值的方式,這對IE和FF都是適用的。比如:
var element = document.createElement('select');
element.id = "myselect";
上面的語句在IE和FF中都會有同樣的效果,并且運行正常。但是我們創(chuàng)建的元素,大部分是要給其動態(tài)添加事件的,顯然,我們不能和添加屬性一樣,直接在后面打個dot,然后寫個事件名,然后后面跟著一串代碼,那樣是會報錯的。所以我們可以采用如下的方法來添加事件:
首先:我們要判斷當(dāng)前的瀏覽器是什么瀏覽器,我們?nèi)匀谎佑弥暗亩x,
if( element.attachEvent ){
//為IE以及IE內(nèi)核的瀏覽器(1)
}else if( element.addEventListener){
//為FF以及NS內(nèi)核的瀏覽器(2)
}
上面的if語句塊就是幫我們完成當(dāng)前瀏覽器是IE還是FF的判斷。
瀏覽器判斷出來,然后我們要做的就是把函數(shù)注冊到元素里面。下面我們給出我們定義的一個功能函數(shù):
function showElementId(elmt){
alert(elmt.id);
}
函數(shù)功能很簡單,就是提示出參數(shù)里面的元素的ID。
如果是IE瀏覽器,我們把如下代碼插入到上面的注釋(1)處:
element.attachEvent( "onclick",function(){showElementId(elmt)});
如果是FF瀏覽器,我們把如下代碼插入到上面的注釋(2)處:
var eventName = "onclick".replace(/on(.*)/i,'$1');
element.addEventListener( eventName,function(){showElementId(elmt)},false);
因為在FF中給元素注冊事件的時候,不需要事件名稱前面的“on”,所以要把on給替換掉。
好啦,如果今后各位同行在開發(fā)項目中,遇到要用JS動態(tài)給元素添加事件的時候,就可以采用上面的方法。那樣就可以避免用戶在用FF瀏覽器時候不能使用你幸苦開發(fā)的功能了。
相關(guān)文章
layui表格 返回的數(shù)據(jù)狀態(tài)異常的解決方法
今天小編就為大家分享一篇layui表格 返回的數(shù)據(jù)狀態(tài)異常的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09javascript Table 中2個列(TD)的交換實現(xiàn)代碼
非常不錯的用js控制talbe中td的位置的實現(xiàn)代碼。2009-02-02Javascript setInterval的兩種調(diào)用方法(實例講解)
這篇文章主要是對Javascript setInterval的兩種調(diào)用方法解析了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11JavaScript forEach的幾種用法小結(jié)
forEach()是JavaScript中一個常用的方法,用于遍歷數(shù)組或類數(shù)組對象中的每個元素,本文就來介紹一下JavaScript forEach的幾種用法小結(jié),具有一定的參考價值,感興趣的可以了解一下2023-11-11javascript和jquery分別實現(xiàn)的九九乘法表代碼
javascript 九九乘法表 附j(luò)query 實現(xiàn)的九九乘法表代碼2010-03-03DD_belatedPNG,IE6下PNG透明解決方案(國外)
今天介紹DD_belatedPNG,只需要一個理由,就是它支持backgrond-position與background-repeat.這是其他js插件不具備的.2010-12-12