jQuery Event对象的属性和方法
介紹之前先介紹jQuery的一個(gè)方法 jQuery.event.fix(event || window.event); 此方法個(gè)瀏覽器的event對(duì)象轉(zhuǎn)換為 jQuery.event; 如果您的事件是通過(guò)jQuery方法綁定的,就不需要進(jìn)行轉(zhuǎn)換了!
jQuery在遵循W3C規(guī)范的情況下,對(duì)事件的常用屬性進(jìn)行了封裝,使得事件處理在各大瀏覽器下都可以正常的運(yùn)行而不需要進(jìn)行瀏覽器類(lèi)型判斷。
1.event.type屬性
該方法作用是可以獲取到時(shí)間的類(lèi)型
| 1 2 3 4 | $("a").click(function(event){ ????alert(event.type);?//獲取時(shí)間類(lèi)型 ????return?false;?//阻止鏈接跳轉(zhuǎn) }) |
?以上代碼運(yùn)行后會(huì)返回:“click”。
2.event.preventDefault()方法
該方法的作用是阻止默認(rèn)的事件行為。JavaScript中符合W3C規(guī)范的preventDefault()方法在IE瀏覽器中無(wú)效。jQuery對(duì)其進(jìn)行了封裝,使之能兼容各種瀏覽器。
3.event.stopPropagation()方法
該方法是阻止事件的冒泡。JavaScript中符合W3C規(guī)范的stopPropagation()方法在IE瀏覽器中無(wú)效。jQuery對(duì)其進(jìn)行封裝,使之能兼容各種瀏覽器。
4.event.target屬性
event.target屬性的作用是獲取到出發(fā)事件的元素。jQuery對(duì)其封裝后,避免了W3C、IE和safari瀏覽器不同標(biāo)準(zhǔn)的差異。
| 1 2 3 4 | $("a[href=http://www.jb51.net]").click(function(event){ ????alert(event.target.href);?//獲取觸發(fā)事件的<a>元素的href屬性值 ????alert(event.target.tagName);?//獲取觸發(fā)事件的元素的標(biāo)簽名稱(chēng) ????return?false;?//阻止鏈接跳轉(zhuǎn)}) |
?5.event.relatedTarget屬性
在標(biāo)準(zhǔn)DOM中,mouseover和mouseout所發(fā)生的元素可以通過(guò)event.target()方法來(lái)訪問(wèn),相關(guān)元素是通過(guò)event.relatedTarget屬性來(lái)訪問(wèn)的。event.relatedTarget屬性在mouseover中相當(dāng)于IE瀏覽器的event.fromElement屬性,在mouseout中相當(dāng)于IE瀏覽器的event.toElement,jQuery對(duì)其進(jìn)行了封裝,使之能兼容各種瀏覽器。
6.event.pageX/event.pageY屬性
該方法的作用是獲取到光標(biāo)相對(duì)頁(yè)面的x坐標(biāo)和y坐標(biāo)。如果沒(méi)有使用jQuery時(shí),那么IE瀏覽器中是用event/event.y方法,而在Firefox瀏覽器中用event.pageX/event.pageY方法。如果頁(yè)上有滾動(dòng)條,則還要加上滾動(dòng)條的寬度和高度。在IE瀏覽器中還應(yīng)該減去默認(rèn)的2px的邊框。
| 1 2 3 4 5 6 7 | $(function() { ????$("a").click(function(event) { ????????alert("Current mouse position:"?+ event.pageX +?","?+ event.pageY); ????????//獲取鼠標(biāo)當(dāng)前相對(duì)于頁(yè)面的坐標(biāo) ????????return?false;?//阻止鏈接跳轉(zhuǎn) ????}); }) |
?7.event.which屬性
該方法的作用是在鼠標(biāo)單擊事件中獲取到鼠標(biāo)的左、中、右鍵;在鍵盤(pán)事件中獲取鍵盤(pán)的按鈕。
| 1 2 3 4 5 | $(function() { ????$("body").mousedown(function(e) { ????????alert(e.which);?//1 = 鼠標(biāo)左鍵;2 = 鼠標(biāo)中鍵;3 = 鼠標(biāo)右鍵。 ????}) }) |
?以上代碼加載到頁(yè)面中,用鼠標(biāo)單擊頁(yè)面時(shí),單擊左、中、右鍵分別返回1、2、3.
8.event.metaKey屬性
針對(duì)不同瀏覽器對(duì)鍵盤(pán)中的<ctrl>按鍵解釋不同,jQuery也進(jìn)行了封裝,并規(guī)定event.metaKey()方法為鍵盤(pán)事件中獲取<ctrl>按鍵。
9.event.originalEvent屬性。
該方法的作用是指向原始的事件對(duì)象。
jQuery的Event對(duì)象用于表示當(dāng)前文檔元素觸發(fā)的DOM事件,它對(duì)JS原生的Event對(duì)象進(jìn)行了封裝,從而實(shí)現(xiàn)跨瀏覽器的兼容。
該對(duì)象主要用于獲取事件的相關(guān)信息,或?qū)υ撌录M(jìn)行處理。
注意:除了下列屬性和方法外,jQuery的Event對(duì)象還具備JS原生Event對(duì)象的屬性和方法。
Event 對(duì)象的屬性
| currentTarget | 1.3 | 返回事件冒泡階段中的當(dāng)前DOM元素。 |
| data | 1.1 | 返回綁定事件時(shí)傳入的附加數(shù)據(jù)。 |
| delegateTarget | 1.7 | 返回"受委托"調(diào)用當(dāng)前事件處理函數(shù)的DOM元素。 |
| metaKey | 1.0.4 | 指示觸發(fā)事件時(shí)是否按下了Meta鍵。 |
| namespace | 1.4.3 | 返回觸發(fā)事件時(shí)指定的命名空間。 |
| pageX | 1.0.4 | 返回鼠標(biāo)相對(duì)于當(dāng)前文檔的x坐標(biāo)。 |
| pageY | 1.0.4 | 返回鼠標(biāo)相對(duì)于當(dāng)前文檔的y坐標(biāo)。 |
| relatedTarget | 1.1.4 | 返回事件涉及到的其它DOM元素。 |
| result | 1.3 | 返回當(dāng)前事件綁定的上一個(gè)事件處理函數(shù)的返回值。 |
| target | 1.3 | 最初觸發(fā)該事件的DOM元素。 |
| timeStamp | 1.2.6 | 返回事件觸發(fā)的當(dāng)前時(shí)間與1970年1月1日午夜之間的毫秒數(shù)。 |
| type | 1.0 | 返回事件的類(lèi)型。例如:"click"、"focus"等。 |
| which | 1.1.3 | 返回觸發(fā)事件時(shí)按下的鼠標(biāo)按鈕或鍵盤(pán)按鍵。 |
Event 對(duì)象的方法
| isDefaultPrevented() | 1.3 | 是否調(diào)用了preventDefault()方法。 |
| isImmediatePropagationStopped() | 1.3 | 是否調(diào)用了stopImmediatePropagation()方法。 |
| isPropagationStopped() | 1.3 | 是否調(diào)用了stopPropagation()方法。 |
| preventDefault() | 1.0 | 阻止觸發(fā)事件的默認(rèn)行為。 |
| stopImmediatePropagation() | 1.3 | 阻止該元素當(dāng)前觸發(fā)事件剩余的事件處理函數(shù)的執(zhí)行,并停止事件的冒泡傳遞。 |
| stopPropagation() | 1.0 | 停止事件的冒泡傳遞。 |
總結(jié)
以上是生活随笔為你收集整理的jQuery Event对象的属性和方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: document 获得元素节点,属性节点
- 下一篇: jQuery之动画效果