亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要使用這樣的方法?

這是老師的代碼

//事件綁定方法
function?bind(el,?eventType,?callback){
????if(typeof?el.addEventListener?===?'function'){
????????//標準事件綁定方法
????????el.addEventListener(eventType,?callback,?false);
????}else?if(typeof?el.attechEvent?===?'function'){
????????//IE事件綁定方法
????????el.attachEvent('on'?+?eventType,?callback);
????}
}
//鼠標懸停的處理函數
function?mouseoverHandler(e){
????var?target?=?e.target?||?e.srcElement;
????var?outer?=?document.getElementById('subject');
????var?list?=?outer.getElementsByTagName('li');
????//清空所有LI元素的class
????for(var?i?=?0;?i?<?list.length;?i++){
????????list[i].className?=?'';
????}
????//根據事件的冒泡原理,找到需要變更class?的LI元素
????while(target.tagName?!=?'LI'?||?target.tagName?==?'BODY'){
????????target?=?target.parentNode;
????}
????target.className?=?'big';
}

我的代碼:

?for(var?i?=0;?i?<?list.length;?i++){
????????list[i].onmouseenter=function(){
????????	for(var?i=0;i<list.length;i++){
????????		list[i].className="";
????????	}
????????	this.className="big";
		}
}

疑問:為什么老師要使用事件監聽的方法?

onmouseenter不是在這里更方便嗎?

而且兼容各大瀏覽器包括IE5.5,并且不會發生冒泡事件。

謝謝回答!

正在回答

1 回答

addEventListener綁定的事件可以有多個,比如addEventListener(eventType,?callback1,?false);

addEventListener(eventType,?callback2,?false);

callback1,callback2都能執行,

如果直接綁定事件,比如onmouseenter,一開始時,該事件你只要執行callback1,后來業務拓展,需要在加個callback2方法,如果是直接綁定事件,后面的會覆蓋前面的,看一下代碼

list[i].onmouseenter=callback1();

list[i].onmouseenter=callback2();

是不是相當于onmouseenter這個事件被重新改寫了,所以兩者的差別在于是否易于擴展業務需求。

當然在這個課程中并沒有突出哪種更合適,所以還是要看具體的項目需求,按需選擇,望采納,謝謝

1 回復 有任何疑惑可以回復我~
#1

飛天意大利面神獸 提問者

非常感謝!
2016-09-29 回復 有任何疑惑可以回復我~
#2

慕萊塢1975833 回復 飛天意大利面神獸 提問者

http://www.xianlaiwan.cn/learn/74看這個課程會有更好的理解
2016-10-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要使用這樣的方法?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號