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