事件處理程序segmentfault
吐槽下segmentfault
的markdown
語法目前不支持頁面錨點定位
var EventUtil = { addEvent: function(element, type, handler){ if(element.addEventListener){ element.addEventListener(type, handler, false);//DOM2級事件處理程序 }else if(element.attachEvent){ element.attach('on' + type, handler);//IE事件處理程序 }else{ element['on' + type] = handler;//DOM0級事件處理程序 } },
getEvent: function(event){ //return event || window.event; return event ? event : window.event; },
getTarget: function(event){ return event.target || event.srcElement; },
preventDefault: function(event){ if (event.preventDefault){ event.preventDefault(); } else { event.returnValue = false; } },
removeEvent: function(element, type, handler){ if(element.removeEventListener){ element.removeEventListener(type, handler, false) }else if(element.detachEvent){ element.detachEvent('on' + type, handler) }else{ element['on' + type] = null; } },
stopPropagation: function(event){ if(event.stopPropagation){ event.stopPropagation(); } else { event.cancelBubble = true; } },
這個屬性只對於mouseover
和mouseout
事件才包含值;
對於其餘事件,這個屬性值是null
;
getRelatedTarget: function(e){ if(e.relatedTarget){ return e.relatedTarget; } else if(e.toElement){ return e.toElement; } else if(e.fromElement){ return e.fromElement; } else { return null; } },
{ 0:主鼠標按鈕,1:中間的鼠標按鈕(滾輪按鈕),2:次鼠標按鈕}
getMouseButton: function(event){ if(document.implementation.hasFeature("MouseEvents", '2.0')){ return event.button; } else { // IE8及以前版本的button屬性,轉換爲DOM版鼠標事件的button屬性 switch(event.button){ case 0: case 1: case 3: case 5: case 7: return 0; case 2: case 6: return 2; case 4: return 1; } } },
getWheelDelta: function(event){ if(event.wheelDelta){ return (client.engine.opera && client.engine.opera < 9.5) ? -event.wheelDelta : event.wheelDelta; } else { return -event.detail * 40; } },
getCharCode: function(event){ if(typeof event.charCode == 'number'){ return event.charCode; } else { return event.keyCode; } }
}
發表在掘金的連接markdown