欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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]();
} );
}
};

另一個實(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是微軟制造的一個事件,它在一個元素的屬性發(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
}

或者這個功能更強(qiáng)大,我在開發(fā)datagrid時開發(fā)出來的,詳細(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事件的一覽表
    <ol id="pawwq"><code id="pawwq"></code></ol>
  • 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)文章

    最新評論

    <kbd id="pawwq"></kbd>

      <abbr id="pawwq"></abbr>