第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

javascript高手請(qǐng)進(jìn),關(guān)于注冊(cè)事件問題

javascript高手請(qǐng)進(jìn),關(guān)于注冊(cè)事件問題

絕地?zé)o雙 2018-12-06 17:53:35
這是一個(gè)我看別人寫的 var EventUtil = { addHandler: function (oElement, sEvent, fnHandler) { oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : (oElement["_" + sEvent + fnHandler] = fnHandler, oElement[sEvent + fnHandler] = function () {oElement["_" + sEvent + fnHandler]()}, oElement.attachEvent("on" + sEvent, oElement[sEvent + fnHandler])) } } 但感覺好像也不用這么麻煩呀!請(qǐng)問他這么寫避免了那些問題或者好處是什么,那么下面是我寫的 var EventUtil={ addHandler:function(oElement,sEvent,fnHandler){ oElement.addEventListener ? oElement.addEventListener(sEvent,fnHandler,false) : oElement.attachEvent("on"+sEvent,fnHandler) } }
查看完整描述

3 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

不得不說, 寫這代碼的人也太喜歡賣弄了吧, 非要寫成一行. 寫通俗點(diǎn)可以是這樣:

var EventUtil = {

  addHandler: function(oElement, sEvent, fnHandler){

    if(oElement.addEventListener){

      oElement.addEventListener(sEvent, fnHandler, false);

    }

    else{

      oElement['__'+ sEvent] = fnHandler;

      oElement.attachEvent('on'+ sEvent, function(evt){

        oElement['__'+ sEvent](evt);

      });

    }

  }

}

他首先把要注冊(cè)的偵聽器作成DOM元素的一個(gè)方法, 然后當(dāng)事件觸發(fā)后用該 DOM元素調(diào)用這個(gè)方法, 我猜應(yīng)該是解決ie中事件偵聽器中的 this 指向的問題, 按理說事件觸發(fā)后, 偵聽器中的 this 是指向事件觸發(fā)那個(gè) DOM 元素的, 也許在IE 以前的某個(gè)古老的版本中 偵聽器中的 this 是亂指向的. ?

這是我的猜測(cè), 沒有具體實(shí)驗(yàn), 我在工作中還沒遇到過這種情況, 現(xiàn)在的ie 都很正常,?也許是我沒注意吧.

查看完整回答
反對(duì) 回復(fù) 2018-12-24
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

有點(diǎn)閉包的意思,這個(gè)寫的有點(diǎn)意思。寫這段代碼人,對(duì)JavaScript有一定認(rèn)識(shí)啊
查看完整回答
反對(duì) 回復(fù) 2018-12-24
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

這個(gè)閉包貌似沒關(guān)系吧?他只是如果沒有addEventListener方法,就給oElement添加一個(gè)屬性,然后把處理方法賦值給這個(gè)屬性,然后綁定事件的時(shí)候關(guān)聯(lián)這個(gè)屬性。。這只是我的個(gè)人認(rèn)為,我是菜鳥,看不出有什么好處。

查看完整回答
反對(duì) 回復(fù) 2018-12-24
  • 3 回答
  • 0 關(guān)注
  • 452 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)