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

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

 更新時間:2009年12月24日 13:23:45   作者:  
javascript 事件綁定的一些兼容寫法整理非常不錯,感謝
綁定事件
復(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]();
} );
}
};

另一個實現(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是微軟制造的一個事件,它在一個元素的屬性發(fā)生變化的時候觸發(fā),常見的有文本的長度改變,樣長改變等,F(xiàn)F大致和它相似的屬性為oninput事件,不過它只針對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();
}
}

取得事件源對象

相當(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
}

或者這個功能更強大,我在開發(fā)datagrid時開發(fā)出來的,詳細用法見《一步步教你實現(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事件的一覽表
    1. 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ī)硪黄P(guān)于JS變量和作用域詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
        2016-07-07
      • JS/Jquery判斷對象為空的方法

        JS/Jquery判斷對象為空的方法

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

        javascript檢測flash插件是否被禁用的方法

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

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

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

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

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

        JavaScript ES6中類與模塊化管理超詳細講解

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

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

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

        微信小程序多項選擇器checkbox

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

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

        這篇文章主要介紹了JavaScript的API設(shè)計原則,包括接口的流暢性,一致性,參數(shù)的處理,可擴展性,對錯誤的處理,可預(yù)見性,注釋和文檔的可讀性,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起學(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 id="9lppo"><pre id="9lppo"><del id="9lppo"></del></pre></p>
    2. <pre id="9lppo"></pre>