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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:26:32
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js跨瀏覽器的事件偵聽器和事件對象的使用方法,需要的朋友可以參考下
 

本文特意為跨瀏覽器實現添加事件偵聽器和跨瀏覽器事件對象的使用方法做了下總結,并把這些方法打包,歡迎大家學習。
打包的一個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 href="http://www.test.com" 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);  };

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



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 灵山县| 铜陵市| 天门市| 偏关县| 昆山市| 红河县| 佛冈县| 彭水| 西平县| 理塘县| 延长县| 青龙| 乌苏市| 兰州市| 凯里市| 阳新县| 万荣县| 大姚县| 林甸县| 河北区| 孝昌县| 乐清市| 满城县| 荆门市| 伊通| 景宁| 肃宁县| 威海市| 兴仁县| 康马县| 平安县| 武夷山市| 青河县| 建水县| 金乡县| 英德市| 永昌县| 浙江省| 肇庆市| 平乡县| 鹤岗市|