1. 程式人生 > >通用事件對象(跨瀏覽器)

通用事件對象(跨瀏覽器)

方式 veh element and false 使用 n) 如果 event對象

var EventUtil = {
        addHander: function(element, type, handler) {
            if (element.addEventListener) {
                element.addEventListener(type, handler, false)
            } else if (element.attchEvent) {
                element.attchEvent(on + type, handler)
            } else
{ element[on + type] = handler } }, removeHandler: 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; } }, getEvent: function(event) { //使用這個方法跨瀏覽器取得event對象 return event ? event : window.event; }, getTarget: function(event) { //返回事件的實際目標 return event
.target || event.srcElement; }, stopBubble: function stopBubble(event) { // 如果提供了事件對象,則這是一個非IE瀏覽器 if (event && event.stopPropagation) { // 因此它支持W3C的stopPropagation()方法 event.stopPropagation(); } else { // 否則,我們需要使用IE的方式來取消事件冒泡 window.event.cancelBubble = true; } }, stopDefault: function(event) { // 阻止默認瀏覽器動作(W3C) if (event && event.preventDefault) { event.preventDefault(); } else { // IE中阻止函數器默認動作的方式 window.event.returnValue = false; } return false; }, getWheelDelta: function(event) { //獲取表示鼠標滾輪滾動方向的數值 if (event.wheelDelta) { return event.wheelDelta; } else { return -event.detail * 40; } }, getCharCode: function(event) { //以跨瀏覽器取得相同的字符編碼,需在keypress事件中使用 if (typeof event.charCode == "number") { return event.charCode; } else { return event.keyCode; } } };

通用事件對象(跨瀏覽器)