国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 荥阳市| 辽宁省| 彝良县| 湟源县| 疏勒县| 贞丰县| 临湘市| 蒲江县| 望都县| 蓝山县| 鲜城| 连江县| 增城市| 玛纳斯县| 鹤山市| 武山县| 甘南县| 鄂托克旗| 锡林浩特市| 社旗县| 金溪县| 天台县| 榆林市| 商河县| 乌兰浩特市| 汤原县| 顺义区| 九龙坡区| 平邑县| 尼木县| 维西| 灵山县| 永靖县| 高阳县| 会东县| 永善县| 宁安市| 虞城县| 乡城县| 丰宁| 政和县|