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

首頁 > 開發 > JS > 正文

JavaScript事件對象event用法分析

2024-05-06 16:45:24
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript事件對象event用法。分享給大家供大家參考,具體如下:

前面的文章已經介紹了JavaScript為事件指定處理程序的五種方式

下面繼續介紹JavaScript的事件對象event。

事件對象event包含導致事件的元素、事件的類型以及其他與特定事件相關的信息。

1、DOM中的事件對象

 

屬性/方法 類型 說明
bubbles Boolean 表明事件是否冒泡
cancelabel Boolean 表明是否可以取消事件的默認行為
currentTarget Element 事件處理程序當前正在處理事件的那個元素(監聽事件的那個元素)
defaultPrevented Boolean true表示已經調用了preventDefault()
detail Integer 與事件相關的細節信息
eventPhase Integer 調用事件處理程序的階段:1表示捕獲階段,2表示處于目標,3表示冒泡階段
preventDefault() Function 取消事件的默認行為,cancelable為true才可使用此方法
stopImmediatePropagation() Function 取消事件的捕獲或冒泡,同時阻止任何事件處理程序被調用
stopPropagation() Function 取消事件的捕獲或冒泡,bubbles為true才可使用此方法
target Element 事件的目標
trusted Boolean true表示事件是瀏覽器生成的,false表示事件是由開發人員通過JavaScript創建的
type String 事件的類型
view AbstractView 與事件關聯的抽象視圖,等同于發生事件的window對象

 

若直接將事件處理程序指定給了目標元素,則this,currentTargettarget包含相同的值;若事件處理程序存在于按鈕的父節點中,則thiscurrentTarget等于父節點,而target等于按鈕元素。

在需要通過一個函數處理多個事件時,可以使用type屬性:

var btn = document.getElementsByTagName("button")[0];var handler = function(event) { switch(event.type) {  case "click":   alert("click");  case "mouseover":   alert("mouseover");  case "mouseout":   alert("mouseout"); }}btn.onclick = handler;btn.onmouseover = handler;btn.onmouseout = handler;

注意:只有在事件處理程序執行期間,event對象才會存在;一旦事件處理程序執行完畢,event對象就會被銷毀。

2、IE中的事件對象

訪問IE中的event對象有幾種不同的方式:

1) 在使用DOM0級方法添加事件處理程序時,通過window.event訪問event對象;

2) 在使用attachEvent()方法添加事件處理程序時,event對象會作為參數被傳入事件處理程序中,也可以通過window.event訪問event對象;

3) 在通過HTML特性指定事件處理程序時,還可以通過一個名為event的變量來訪問event對象。

IE中的事件目標通過srcElement屬性獲取,this不一定等于事件目標:在使用DOM0級方法添加事件處理程序時,this等于事件目標,但在使用attachEvent()方法添加事件處理程序時,this則不等于事件目標。

 

屬性/方法 類型 說明
cancelBubble Boolean 默認為false,但將其設置為true就可以取消事件冒泡,由于IE不支持事件捕獲,因此只能取消事件冒泡,而stopPropagation()則可以同時取消事件捕獲或冒泡
returnValue Boolean 默認為true,但將其設置為false就可以取消事件的默認行為
srcElement Element 事件的目標
type String 事件的類型

 

3、跨瀏覽器的事件

var EventUtil = {  addHandler: function(element, type, handler) {  ...... },  getEvent: function(event) {  return event ? event : window.event; }, getTarget: function(event) {  return enent.target || target.srcElement; }, preventDefault: function(event) {  if (event.preventDefault)   event.preventDefault();  else   event.returnValue = false; }, removeHandler: function(element, type, handler) {  ...... },  stopPropagation: function() {  if (event.stopPropagation)   event.stopPropagation();  else   event.cancelBubble = true; }};var btn = document.getElementsByTagName("button")[0];btn.onclick = function(event) { event = EventUtil.getEvent(event); EventUtil.preventDefault(event); EventUtil.stopPropagation(event); alert(event.target.type); // 輸出:click}

 

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 义马市| 深圳市| 聂拉木县| 班戈县| 叶城县| 米泉市| 焦作市| 霞浦县| 措勤县| 奇台县| 浏阳市| 饶平县| 武清区| 达拉特旗| 南宫市| 元朗区| 灵川县| 福海县| 平度市| 科技| 黎川县| 新沂市| 双牌县| 甘泉县| 垫江县| 山丹县| 阿克| 茌平县| 江永县| 武夷山市| 溧水县| 行唐县| 贵州省| 寿宁县| 深州市| 雷波县| 浦北县| 富裕县| 开化县| 金湖县| 杂多县|