jquery 事件對象屬性小結

jquery?事件對象屬性小結

使用事件自然少不了事件對象. 因為不同瀏覽器之間事件對象的獲取, 以及事件對象的屬性都有差異, 導致我們很難跨瀏覽器使用事件對象.

jQuery中統一了事件對象, 當綁定事件處理函數時, 會將jQuery格式化后的事件對象作為唯一參數傳入:

$("#testDiv").bind("click", function(event) { });

關于event對象的詳細說明, 可以參考jQuery官方文檔:?http://docs.jquery.com/Events/jQuery.Event

jQuery事件對象將不同瀏覽器的差異進行了合并, 比如可以在所有瀏覽器中通過 event.target 屬性來獲取事件的觸發者(在IE中使用原生的事件對象, 需要訪問event.srcElement).

下面是jQuery事件對象可以在擴瀏覽器支持的屬性:

屬性名稱描述舉例
type事件類型.如果使用一個事件處理函數來處理多個事件, 可以使用此屬性獲得事件類型,比如click.
$("a").click(function(event) { 
alert(event.type); 
});
target獲取事件觸發者DOM對象
$("a[href=http://google.com]").click(function(event) { 
alert(event.target.href); 
});
data事件調用時傳入額外參數.
$("a").each(function(i) { 
$(this).bind('click', {index:i}, function(e){ 
alert('my index is ' + e.data.index); 
}); 
});
relatedTarget對于鼠標事件, 標示觸發事件時離開或者進入的DOM元素
$("a").mouseout(function(event) { 
alert(event.relatedTarget); 
});
currentTarget冒泡前的當前觸發事件的DOM對象, 等同于this.
$("p").click(function(event) { 
alert( event.currentTarget.nodeName ); 
});

結果:P

pageX/Y鼠標事件中, 事件相對于頁面原點的水平/垂直坐標.
$("a").click(function(event) { 
alert("Current mouse position: " + event.pageX + ", " + event.pageY ); 
});
result上一個事件處理函數返回的值
$("p").click(function(event) { 
return "hey" 
}); 
$("p").click(function(event) { 
alert( event.result ); 
});

結果:”hey”

timeStamp事件發生時的時間戳.
var last; 
$("p").click(function(event) { 
if( last ) 
alert( "time since last event " + event.timeStamp - last ); 
last = event.timeStamp; 
});

上面是jQuery官方文檔中提供的event對象的屬性. 在”jQuery實戰”一書中還提供了下面的多瀏覽器支持的屬性, 時間關系我沒有嘗試每一個屬性, 大家可以幫忙驗證是否在所有瀏覽器下可用:

屬性名稱描述
altKeyAlt鍵是否被按下. 按下返回true
ctrlKeyctrl鍵是否被按下, 按下返回true
metaKeyMeta鍵是否被按下, 按下返回true.
meta鍵就是PC機器的Ctrl鍵,或者Mac機器上面的Command鍵
shiftKeyShift鍵是否被按下, 按下返回true
keyCode對于keyup和keydown事件返回被按下的鍵. 不區分大小寫, a和A都返回65.對于keypress事件請使用which屬性, 因為which屬性跨瀏覽時依然可靠.
which對于鍵盤事件, 返回觸發事件的鍵的數字編碼. 對于鼠標事件, 返回鼠標按鍵號(1左,2中,3右).
screenX/Y對于鼠標事件, 獲取事件相對于屏幕原點的水平/垂直坐標

事件對象除了擁有屬性, 還擁有事件. 有一些是一定會用到的事件比如取消冒泡 stopPropagation() 等.下面是jQuery事件對象的函數列表:

名稱說明舉例
preventDefault()取消可能引起任何語意操作的事件. 比如<a>元素的href鏈接加載, 表單提交以及click引起復選框的狀態切換.
$("a").click(function(event){ 
event.preventDefault(); 
// do something 
});
isDefaultPrevented()是否調用過

?

preventDefault()

方法

$("a").click(function(event){ 
alert( event.isDefaultPrevented() ); 
event.preventDefault(); 
alert( event.isDefaultPrevented() ); 
});
stopPropagation()取消事件冒泡
$("p").click(function(event){ 
event.stopPropagation(); 
// do something 
});
isPropagationStopped()是否調用過

?

stopPropagation()

方法

$("p").click(function(event){ 
alert( event.isPropagationStopped() ); 
event.stopPropagation(); 
alert( event.isPropagationStopped() ); 
});
stopImmediatePropagation()取消執行其他的事件處理函數并取消事件冒泡.如果同一個事件綁定了多個事件處理函數, 在其中一個事件處理函數中調用此方法后將不會繼續調用其他的事件處理函數.
$("p").click(function(event){ 
event.stopImmediatePropagation(); 
}); 
$("p").click(function(event){ 
// This function won't be executed 
});
isImmediatePropagationStopped()是否調用過

?

stopImmediatePropagation()

方法

$("p").click(function(event){ 
alert( event.isImmediatePropagationStopped() ); 
event.stopImmediatePropagation(); 
alert( event.isImmediatePropagationStopped() ); 
});

這些函數中 stopPropagation() 是我們最長用的也是一定會用到的函數. 相當于操作原始event對象的event.cancelBubble=true來取消冒泡。

轉載于:https://www.cnblogs.com/firstgreen/archive/2012/11/20/2778491.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260237.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260237.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260237.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ABP文檔 - Mvc 視圖

文檔目錄 本節內容&#xff1a; 簡介AbpWebViewPage 基類簡介 ABP通過nuget包Abp.Web.Mvc集成到Mvc視圖里&#xff0c;你可以像往常那樣創建常規的視圖。 AbpWebViewPage 基類 ABP也提供了AbpWebViewPage&#xff0c;它定義了一些有用的屬性和方法&#xff0c;如果你使用啟動模…

ThinkPad L440 FN鍵設置

剛入手了ThinkPad L440&#xff0c;用起來相當不錯&#xff0c;嘿嘿&#xff01; L440系統默認&#xff08;F1-F12&#xff09;鍵盤為系統默認功能鍵&#xff0c;主要控制音量、亮度、連接投影儀等。 因為編寫程序需要調試&#xff0c;經常用到F10&#xff0c;F11等鍵&#xff…

離散數學反對稱關系_《離散數學》學習記錄 - 集合論

來源&#xff1a;北京大學《離散數學》公開課地址&#xff1a;https://www.bilibili.com/video/av18896337/?p122.1 有序對和卡氏積有序對<a,b>&#xff1a;有順序&#xff0c;類似于數組&#xff0c;可以用集合定義。性質&#xff1a;有序對內元素對應相等卡氏積AB&…

收集的博客列表

前端&#xff1a; ———————————————————— 宅居 - 裸: http://otakustay.com/ 轉載于:https://www.cnblogs.com/ccdc/archive/2012/11/21/2780879.html

php創建表并插入數據,php數據庫操作-創建庫和表以及插入數據

以上我們正確連接到了mysql數據庫&#xff0c;本文將進一步創建數據庫&#xff0c;表&#xff0c;在表中填充數據。大家知道連接上數據庫才能進行操作&#xff0c;同樣的代碼搬過來/** 數據庫操作*(創建數據庫&#xff0c;表&#xff0c;插入數據&#xff0c;插入多條數據)** T…

C#配置及使用log4net

首先從官方網站http://logging.apache.org/log4net/下載最近版本的log4net組件。在程序中添加對log4net.dll的引用&#xff0c;就可以在程序中使用了。 下一步&#xff0c;編寫配置文件&#xff0c;內容如下 <?xml version"1.0" encoding"utf-8" ?>…

ORACLE EBS常用表及查詢語句(最終整理版)

建議去看參考二 參考一&#xff1a; call fnd_global.APPS_INITIALIZE(1318,50583,401) select fnd_profile.VALUE(ORG_ID) FROM DUAL select * from hr_operating_units hou where hou.organization_id204 --fn…

mysql觸發器 當記錄的指定字段發生變化時,更新表中的另外一個字段,或者更新另外一張關聯表中關聯記錄的字段...

2019獨角獸企業重金招聘Python工程師標準>>> 注意&#xff1a;語句中出現的old&#xff0c;new&#xff0c;now&#xff08;&#xff09;&#xff0c;都為數據庫自帶的關鍵字&#xff0c;此處不做解釋。 兩種情況&#xff1a; 第一種&#xff1a;一張表中&#xff0…

通用無線設備對碼軟件_珞光全新發布國產通用軟件無線電平臺 :USRP-LW N310!珞光品牌已實現國產替代...

USRP-LW N310是一種網絡的軟件定義無線電&#xff08;SDR&#xff09;&#xff0c;它提供了部署大規模的可靠的和容錯性的分布式無線系統。USRP-LW N310通過引入遠程執行任務的能力簡化了對SDR系統的控制和管理&#xff0c;如更新軟件&#xff0c;重新啟動&#xff0c;工廠復位…

手把手玩轉win8開發系列課程(2)

對win8開發&#xff0c;上一節我們對win8進行了簡單的介紹&#xff0c;這一節我們來瞧一瞧他的開發環境搭建。 前奏。 這里所講的win8開發&#xff0c;主要是指Windows8 app store 上開發&#xff0c;及metro ui或叫morden ui 程序的開發。傳統桌面應用程序&#xff0c;網站應…

python通過什么來區分不同語句塊_Python語言通過

【填空題】小塊【填空題】離開;出發(n.)【填空題】好人啊中的 “ 啊 ” 讀( )【填空題】“ 潔癖 ” 的正確讀音是( )【單選題】The article suggests that when a person ________ under unusual stress he should be especially careful to have a well-balanced diet. (CET20…

【Android面試】Android面試題集錦 (陸續更新)

【Android面試】Android面試題集錦 (陸續更新) 分類&#xff1a; 【雜七雜八】2011-05-11 17:58 2064人閱讀 評論(0) 收藏 舉報一些常見的Android面試基礎題做下總結&#xff0c;看看你能做出多少道? 1. Intent的幾種有關Activity啟動的方式有哪些&#xff0c;你了解每個含義嗎…

cordova-plugin-app-version插件使用

此插件用來獲取開發軟件的版本號&#xff01;首先安裝此插件&#xff1a; 命令行中輸入 cordova plugin add cordova-plugin-app-version然后刷新項目&#xff0c;就會在在項目plugins文件夾下看到cordova-plugin-app-version,如下圖所示接下來就是使用此插件的語句獲取版本號c…

14.cookie與自動登陸

場景 webdriver可以讀取并添加cookie。有時候我們需要驗證瀏覽器中是否存在某個cookie&#xff0c;因為基于真實的cookie的測試是無法通過白盒和集成測試完成的。 另外更加常見的一個場景是自動登陸。有很多系統的登陸信息都是保存在cookie里的&#xff0c;因此只要往cookie中添…

不同串口通信速率超時時間_串口知識詳解 串口功能及電路介紹

一、串口的概念串行接口簡稱串口&#xff0c;也稱串行通信接口或串行通訊接口(通常指COM接口)&#xff0c;是采用串行通信方式的擴展接口。串行接口(SerialInterface)是指數據一位一位地順序傳送&#xff0c;其特點是通信線路簡單&#xff0c;只要一對傳輸線就可以實現雙向通信…

matlab 求最大值函數,利用matlab, 二元函數求最大值

求二元函數z0.2323*x^2-0.2866^22*(-0.5406)*a0^21.0203*a0^2*x^2/((x^2y^2)^0.5*tanh(2*(x^2y^2)^0.5)-x^2*(0.5733-u0)^2)的最大值&#xff0c;變量x和y都是在0.2附近。求z的最大值&#xff0c;以及x,y的取值。先用diff命令求z關于x,y的偏導數得到q(1)和q(2)兩個方程&#xf…

代碼生成那點事

在微軟技術中浸淫6年多了&#xff0c;我就常想啊&#xff0c;有沒有一個工具&#xff0c;能讓開發簡單一點&#xff0c;哪怕就簡單一點點&#xff1f;&#xff01; 這還是去年的事情&#xff0c;手里的項目都成功上線了&#xff0c;我和james聊天&#xff0c;我說咱們的這幾個項…

python反爬蟲破解_python中繞過反爬蟲的方法總結

我們在登山的途中&#xff0c;有不同的路線可以到達終點。因為選擇的路線不同&#xff0c;上山的難度也有區別。就像最近幾天教大家獲取數據的時候&#xff0c;斷斷續續的講過header、地址ip等一些的方法。具體的爬取方法相信大家已經掌握住&#xff0c;本篇小編主要是給大家進…

vue上傳文件php,php文件上傳 – 前端開發,JQUERY特效,全棧開發,vue開發

文件上傳一般有下面2種方式&#xff1a;有兩種&#xff1a;1、標準input表單方式&#xff0c;典型的用$_FILES進行接收&#xff1b;2、以Base64的方式進行傳送&#xff0c;一般是AJAX異步上傳。第一種標準的input表單方式&#xff0c;適用于大文件進行上傳&#xff0c;同時支持…

HDU 1003 Max Sum

同上題一樣&#xff0c;求連續子序列的最大和 而且比上題還要簡單一些&#xff0c;用不到long long了 直接水過 1 //#define LOCAL2 #include <iostream>3 #include <cstdio>4 #include <cstring>5 using namespace std;6 7 const int maxn 100000 10;8 in…