最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 處理事件綁定的一些兼容寫法

 更新時(shí)間:2009年12月24日 13:23:45   作者:  
javascript 事件綁定的一些兼容寫法整理非常不錯(cuò),感謝
綁定事件
復(fù)制代碼 代碼如下:

var addEvent = function( obj, type, fn ) {
if (obj.addEventListener)
obj.addEventListener( type, fn, false );
else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj.attachEvent( "on"+type, function() {
obj["e"+type+fn]();
} );
}
};

另一個(gè)實(shí)現(xiàn)
復(fù)制代碼 代碼如下:

var addEvent = (function () {
if (document.addEventListener) {
return function (el, type, fn) {
el.addEventListener(type, fn, false);
};
} else {
return function (el, type, fn) {
el.attachEvent('on' + type, function () {
return fn.call(el, window.event);
});
}
}
})();

綁定onpropertychange事件

onpropertychange是微軟制造的一個(gè)事件,它在一個(gè)元素的屬性發(fā)生變化的時(shí)候觸發(fā),常見的有文本的長(zhǎng)度改變,樣長(zhǎng)改變等,F(xiàn)F大致和它相似的屬性為oninput事件,不過(guò)它只針對(duì)textfield與textarea的value屬性。safari,firefox,chrome與 opera都支持此屬性。
復(fù)制代碼 代碼如下:

var addPropertyChangeEvent = function (obj,fn) {
if(window.ActiveXObject){
obj.onpropertychange = fn;
}else{
obj.addEventListener("input",fn,false);
}
}

移除事件
復(fù)制代碼 代碼如下:

var removeEvent = function( obj, type, fn ) {
if (obj.removeEventListener)
obj.removeEventListener( type, fn, false );
else if (obj.detachEvent) {
obj.detachEvent( "on"+type, obj["e"+type+fn] );
obj["e"+type+fn] = null;
}
};

加載事件
復(fù)制代碼 代碼如下:

var loadEvent = function(fn) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = fn;
}else {
window.onload = function() {
oldonload();
fn();
}
}
}

阻止事件
復(fù)制代碼 代碼如下:

var stopEvent = function(e){
e = e || window.event;
if(e.preventDefault) {
e.preventDefault();
e.stopPropagation();
}else{
e.returnValue = false;
e.cancelBubble = true;
}
}

如果僅僅是阻止事件冒泡
復(fù)制代碼 代碼如下:

var stopPropagation = function(e) {
e = e || window.event;
if (!+"\v1") {
e.cancelBubble = true;
} else {
e.stopPropagation();
}
}

取得事件源對(duì)象

相當(dāng)于Prototype.js框架的Event.element(e)
復(fù)制代碼 代碼如下:

var getEvent = function(e){
e = e || window.event;
var target = event.srcElement ? event.srcElement : event.target;
return target
}

或者這個(gè)功能更強(qiáng)大,我在開發(fā)datagrid時(shí)開發(fā)出來(lái)的,詳細(xì)用法見《一步步教你實(shí)現(xiàn)表格排序(第二部分)》。
復(fù)制代碼 代碼如下:

var getEvent = function(e) {
var e = e || window.event;
if (!e) {
var c = this.getEvent.caller;
while (c) {
e = c.arguments[0];
if (e && (Event == e.constructor || MouseEvent == e.constructor)) {
break;
}
c = c.caller;
}
}
var target = e.srcElement ? e.srcElement : e.target,
currentN = target.nodeName.toLowerCase(),
parentN = target.parentNode.nodeName.toLowerCase(),
grandN = target.parentNode.parentNode.nodeName.toLowerCase();
return [e,target,currentN,parentN,grandN];
}

最后附上DOM3.0事件的一覽表
type Bubbling phase Cancelable Target node types DOM interface
DOMActivate Yes Yes Element UIEvent
DOMFocusIn Yes No Element UIEvent
DOMFocusOut Yes No Element UIEvent
focus No No Element UIEvent
blur No No Element UIEvent
textInput Yes Yes Element TextEvent
click Yes Yes Element MouseEvent
dblclick Yes Yes Element MouseEvent
mousedown Yes Yes Element MouseEvent
mouseup Yes Yes Element MouseEvent
mouseover Yes Yes Element MouseEvent
mousemove Yes Yes Element MouseEvent
mouseout Yes Yes Element MouseEvent
keydown Yes Yes Element KeyboardEvent
keyup Yes Yes Element KeyboardEvent
mousemultiwheel Yes Yes Document, Element MouseMultiWheelEvent
mousewheel Yes Yes Document, Element MouseWheelEvent
DOMSubtreeModified Yes No Document, DocumentFragment, Element, Attr MutationEvent
DOMNodeInserted Yes No Element, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstruction MutationEvent
DOMNodeRemoved Yes No Element, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstruction MutationEvent
DOMNodeRemovedFromDocument No No Element, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstruction MutationEvent
DOMNodeInsertedIntoDocument No No Element, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstruction MutationEvent
DOMAttrModified Yes No Element MutationEvent
DOMCharacterDataModified Yes No Text, Comment, CDATASection, ProcessingInstruction MutationEvent
DOMElementNameChanged Yes No Element MutationNameEvent
DOMAttributeNameChanged Yes No Element MutationNameEvent
load No No Document, Element Event
unload No No Document, Element Event
abort Yes No Element Event
error Yes No Element Event
select Yes No Element Event
change Yes No Element Event
submit Yes Yes Element Event
reset Yes Yes Element Event
resize Yes No Document, Element UIEvent
scroll Yes No Document, Element 您可能感興趣的文章:

相關(guān)文章

  • 關(guān)于JS變量和作用域詳解

    關(guān)于JS變量和作用域詳解

    下面小編就為大家?guī)?lái)一篇關(guān)于JS變量和作用域詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • JS/Jquery判斷對(duì)象為空的方法

    JS/Jquery判斷對(duì)象為空的方法

    本文給大家分享的是JS/Jquery判斷對(duì)象是不是空對(duì)象的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • javascript檢測(cè)flash插件是否被禁用的方法

    javascript檢測(cè)flash插件是否被禁用的方法

    這篇文章主要介紹了javascript檢測(cè)flash插件是否被禁用的方法,涉及JavaScript調(diào)用ActiveXObject組件操作flash插件的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • JavaScript函數(shù)的4種調(diào)用方法詳解

    JavaScript函數(shù)的4種調(diào)用方法詳解

    了解函數(shù)的調(diào)用過(guò)程有助于深入學(xué)習(xí)與分析JavaScript代碼。本文是JavaScript高級(jí)這個(gè)系列中的第三篇文章,主要介紹JavaScript中函數(shù)的四種使用形式
    2014-04-04
  • ES6新特性三: Generator(生成器)函數(shù)詳解

    ES6新特性三: Generator(生成器)函數(shù)詳解

    這篇文章主要介紹了ES6新特性之Generator(生成器)函數(shù),簡(jiǎn)單分析了Generator(生成器)函數(shù)的功能、定義、調(diào)用方法并結(jié)合實(shí)例形式給出了相關(guān)使用技巧,需要的朋友可以參考下
    2017-04-04
  • JavaScript ES6中類與模塊化管理超詳細(xì)講解

    JavaScript ES6中類與模塊化管理超詳細(xì)講解

    JavaScript中的模塊化是指將每個(gè)js文件會(huì)被認(rèn)為單獨(dú)一個(gè)的模塊。模塊之間是互相不可見的。如果一個(gè)模塊需要使用另一個(gè)模塊,那么需要通過(guò)指定語(yǔ)法來(lái)引入要使用的模塊,而且只能使用引入模塊所暴露的內(nèi)容
    2023-01-01
  • c#和Javascript操作同一json對(duì)象的實(shí)現(xiàn)代碼

    c#和Javascript操作同一json對(duì)象的實(shí)現(xiàn)代碼

    剛開始學(xué)Javascript,接觸到j(luò)son對(duì)象,json可以看作是用于客戶端數(shù)據(jù)實(shí)體對(duì)象的載體。json對(duì)象一般都是通過(guò)ajax方式傳送給服務(wù)層
    2012-01-01
  • 微信小程序多項(xiàng)選擇器checkbox

    微信小程序多項(xiàng)選擇器checkbox

    這篇文章主要為大家詳細(xì)介紹了微信小程序多項(xiàng)選擇器checkbox,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 深入淺析JavaScript的API設(shè)計(jì)原則

    深入淺析JavaScript的API設(shè)計(jì)原則

    這篇文章主要介紹了JavaScript的API設(shè)計(jì)原則,包括接口的流暢性,一致性,參數(shù)的處理,可擴(kuò)展性,對(duì)錯(cuò)誤的處理,可預(yù)見性,注釋和文檔的可讀性,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定

    KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定

    這篇文章主要介紹了KnockoutJS 3.X API 第四章之?dāng)?shù)據(jù)控制流if綁定和ifnot綁定的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評(píng)論

铜梁县| 虎林市| 永和县| 娱乐| 精河县| 北流市| 同江市| 新源县| 道真| 黄大仙区| 开封市| 双城市| 嵩明县| 库伦旗| 金秀| 太仓市| 久治县| 河南省| 汉寿县| 云浮市| 汉源县| 察隅县| 虹口区| 铜陵市| 遂平县| 云安县| 伊春市| 合水县| 九龙坡区| 盐山县| 民勤县| 琼结县| 乾安县| 灌阳县| 团风县| 元阳县| 寻乌县| 宜都市| 桃源县| 冕宁县| 江川县|