国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js跨瀏覽器的事件偵聽器和事件對象的使用方法

2019-11-20 10:59:48
字體:
來源:轉載
供稿:網友

本文特意為跨瀏覽器實現添加事件偵聽器和跨瀏覽器事件對象的使用方法做了下總結,并把這些方法打包,歡迎大家學習。
打包的一個EventUtil對象

var EventUtil = {    // 添加偵聽事件    addEventListener:function (element, type, handler) {      // IE9+、Firefox、Safari、chrome和Opera      if(element.addEventListener) {        element.addEventListener(type, handler, false);      }      // IE8-      else if(element.attachEvent) {        element.attachEvent("on" + type, handler);      }    },        // 移除偵聽事件    removeEventListener:function (element, type, handler) {      // IE9+、Firefox、Safari、chrome和Opera      if(element.addEventListener) {        element.removeEventListener(type, handler, false);      }      // IE8-      else if(element.attachEvent) {        element.detachEvent("on" + type, handler);      }    },        // 獲取事件對象    getEvent:function(event) {      if(typeof event == "undefined") {        event = window.event; // IE瀏覽器      }      return event;    },        // 獲取觸發事件的元素    getTarget:function(event){      if(typeof event.srcElement == "undefined") {        return event.target;      }else {        return event.srcElement; // IE瀏覽器      }    },        // 獲取事件類型    getType:function(event) {      return event.type;    },        // 獲取按鍵鍵碼    getCharCode:function(event) {      if(typeof event.keyCode == "number") {        return event.keyCode; // IE8-、Firefox和opera      }else {        return event.charCode;       }    },        // 獲取鼠標相對于文檔的位置,即頁面坐標位置    getPagePosition:function(event) {      var pageX = event.pageX,        pageY = event.pageY;      if(pageX == undefined) {        pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);      }      if(pageY == undefined) {        pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);      }      return {        pageX:pageX,        pageY:pageY      };    },        // 阻止事件的默認行為    preventDefault:function(event) {      if(event.preventDefault){        event.preventDefault();      }else {        event.returnValue = false; // IE瀏覽器      }    },        // 阻止事件冒泡    stopPropagation:function(event) {      if(typeof event.cancelBubble == "undefined") {        event.stopPropagation();      }else {        event.cancelBubble = true; // IE瀏覽器      }    }  };

測試代碼

<div id="box" style="color:red;width: 100%;height:200px;" >  <input type="button" value="點擊" id="btn" /></div><a  id="a">test</a>
var box = document.querySelector("#box");  box.onclick = function(event) {    event = EventUtil.getEvent(event);    alert(EventUtil.getType(event));    alert(EventUtil.getTarget(event));  };  var input = document.querySelector("input");  input.onclick = function(event) {    event = EventUtil.getEvent(event);    EventUtil.stopPropagation(event);  };    var a = document.getElementById("a");  a.onclick = function(event) {    event = EventUtil.getEvent(event);    EventUtil.preventDefault(event);  };

以上就是跨瀏覽器實現添加事件偵聽器和跨瀏覽器事件對象的使用方法,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁波市| 化州市| 仙桃市| 隆化县| 叙永县| 铁岭县| 陈巴尔虎旗| 新化县| 五家渠市| 军事| 潜山县| 南漳县| 沙湾县| 离岛区| 壤塘县| 吴堡县| 江北区| 大足县| 武川县| 中江县| 东丽区| 古蔺县| 辽中县| 富顺县| 尼勒克县| 金门县| 开江县| 阿克苏市| 榆树市| 乌兰浩特市| 兰考县| 阳东县| 汉中市| 元氏县| 乡宁县| 资阳市| 丁青县| 梁山县| 淅川县| 财经| 锡林浩特市|