欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

javascript事件處理-創(chuàng)新互聯(lián)

一般我們?cè)贘S中添加事件,是這樣子的javascript事件處理
obj.onclick=method

這種綁定事件的方式,兼容主流瀏覽器,但如果一個(gè)元素上添加多次同一事件呢?

六盤水ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
obj.onclick=method1;
obj.onclick=method2;
obj.onclick=method3;

如果這樣寫,那么只有最后綁定的事件,這里是method3會(huì)被執(zhí)行,這個(gè)時(shí)候我們就不能用onclick這樣的寫法了,主角改登場(chǎng)了,在IE中我們可以使用attachEvent方法

//object.attachEvent(event,function);btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);

使用格式是前面是事件類型,注意的是需要加on,比如onclick,onsubmit,onchange,執(zhí)行順序是

method3->method2->method1

可惜這個(gè)微軟的私人方法,火狐和其他瀏覽器都不支持,幸運(yùn)的是他們都支持W3C標(biāo)準(zhǔn)的addEventListener方法

//element.addEventListener(type,listener,useCapture);btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);

執(zhí)行順序?yàn)閙ethod1->method2->method3

做前端開發(fā)工程師,最悲劇的某過于瀏覽器兼容問題了,上面有兩種添加事件的方法,為了同一添加事件的方法,我們不得不再重新寫一個(gè)通用的添加事件函數(shù),幸虧再有前人幫我們做了這件事

function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);//DOM2.0return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent(‘on‘ + evType, fn);//IE5+return r;
}
else {
elm['on' + evType] = fn;//DOM 0}
}

下面是Dean Edwards 的版本

function addEvent(element, type, handler) {
//為每一個(gè)事件處理函數(shù)分派一個(gè)唯一的IDif (!handler.$$guid) handler.$$guid = addEvent.guid++;
//為元素的事件類型創(chuàng)建一個(gè)哈希表if (!element.events) element.events = {};
//為每一個(gè)"元素/事件"對(duì)創(chuàng)建一個(gè)事件處理程序的哈希表var handlers = element.events[type];
if (!handlers) {
handlers= element.events[type] = {};
//存儲(chǔ)存在的事件處理函數(shù)(如果有)if (element["on" + type]) {
handlers[0] = element["on" + type];
}
}
//將事件處理函數(shù)存入哈希表handlers[handler.$$guid] = handler;
//指派一個(gè)全局的事件處理函數(shù)來做所有的工作element["on" + type] = handleEvent;
};
//用來創(chuàng)建唯一的ID的計(jì)數(shù)器addEvent.guid = 1;
function removeEvent(element, type, handler) {
//從哈希表中刪除事件處理函數(shù)if (element.events && element.events[type]) {
delete element.events[type][handler.$$guid];
}
};
function handleEvent(event) {
var returnValue = true;
//抓獲事件對(duì)象(IE使用全局事件對(duì)象)event = event || fixEvent(window.event);
//取得事件處理函數(shù)的哈希表的引用var handlers = this.events[event.type];
//執(zhí)行每一個(gè)處理函數(shù)for (var i in handlers) {
this.$$handleEvent = handlers[i];
if (this.$$handleEvent(event) === false) {
returnValue= false;
}
}
return returnValue;
};
//為IE的事件對(duì)象添加一些“缺失的”函數(shù)function fixEvent(event) {
//添加標(biāo)準(zhǔn)的W3C方法event.preventDefault = fixEvent.preventDefault;
event.stopPropagation= fixEvent.stopPropagation;
return event;
};
fixEvent.preventDefault= function() {
this.returnValue = false;
};
fixEvent.stopPropagation= function() {
this.cancelBubble = true;
};

功能非常強(qiáng)悍,解決IE的this指向問題,event總是作為第一個(gè)參數(shù)傳入,跨瀏覽器就更不在話下。

最后貢獻(xiàn)一個(gè)HTML5工作組的版本:

var addEvent=(function(){
if(document.addEventListener){
return function(el,type,fn){
if(el.length){
for(var i=0;i<el.length;i++){
addEvent(el[i],type,fn);
}
}else{
el.addEventListener(type,fn,false);
}
};
}else{
return function(el,type,fn){
if(el.length){
for(var i=0;i<el.length;i++){
addEvent(el[i],type,fn);
}
}else{
el.attachEvent(‘on‘+type,function(){
return fn.call(el,window.event);
});
}
};
}
})();

可能細(xì)心的讀者發(fā)現(xiàn)了IE的attachEvent和W3C標(biāo)準(zhǔn)的addEventListener綁定多個(gè)事件的執(zhí)行順序是不一樣的

文章轉(zhuǎn)自:http://www.oschina.net/question/54100_25614   http://www.popo4j.com/article/js-add-event-attachEvent-and-addEventListener.html,

網(wǎng)頁(yè)標(biāo)題:javascript事件處理-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article14/ddodde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序企業(yè)建站、用戶體驗(yàn)、網(wǎng)頁(yè)設(shè)計(jì)公司服務(wù)器托管、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
欧美人妻不卡一区二区久久| 亚洲天堂国产中文在线| 给我免费在线观看视频| 黄色日韩大片在线观看| 欧美日韩欧美黄色三级| 国产精品久久护士96| 亚洲成人av网址大全| 国产三级在线播放完整| 亚洲精品在线观看日本| 日本免费在线不卡一区二区| 国产一区二区三区在线视频播放| 国产精品国产三级农村av| 久久精品少妇人妻视频| 我要看亚洲黄色片一级 | 91内射视频在线播放| 国产精品剧情在线播放| 中文字幕一区二区精品区| 欧美一区二区国产日韩在线| 国产福利三级在线观看| 国产精品v一区二区三区| 一区二区三区精品人妻| 午夜久久精品国产亚洲av| 亚洲av午夜福利麻豆av| 欧美亚洲另类不卡在线| 一本久道久久综合久久鬼色| 美女丝袜诱惑国产在线观看| 成人性生交大片免费看多人| 四虎在线观看永久地址| 日本韩国视频一区二区| 亚洲欧美日韩制服另类| 亚洲精品??一区二区| 国家成人午夜在线观看| 亚洲伦理一区二区三区中文| 青青草国产精品一区二区| 国产成人国产三级国产精品| 老牛av一区二区三区| 少妇被又粗又硬猛烈进视频| 日韩精品国产一区二区在线观看| 国产精品不卡一不卡二| 午夜看片福利欧美熟女| 国产成人免费自拍一区|