jQuery.event相容各瀏覽器的event詳細解析_jquery

來源:互聯網
上載者:User

介紹之前先介紹jQuery的一個方法 jQuery.event.fix(event || window.event); 此方法個瀏覽器的event對象轉換為 jQuery.event; 如果您的事件是通過jQuery方法綁定的,就不需要進行轉換了!

jQuery在遵循W3C規範的情況下,對事件的常用屬性進行了封裝,使得事件處理在各大瀏覽器下都可以正常的運行而不需要進行瀏覽器類型判斷。

1.event.type屬性
該方法作用是可以擷取到時間的類型

複製代碼 代碼如下:

$("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瀏覽器不同標準的差異。

複製代碼 代碼如下:

$("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的邊框。

複製代碼 代碼如下:

$(function() {
    $("a").click(function(event) {
        alert("Current mouse position:" + event.pageX + "," + event.pageY);
        //擷取滑鼠當前相對於頁面的座標
        return false; //阻止連結跳轉
    });
})

7.event.which屬性
該方法的作用是在按一下滑鼠事件中擷取到滑鼠的左、中、右鍵;在鍵盤事件中擷取鍵盤的按鈕。
複製代碼 代碼如下:

$(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屬性。
該方法的作用是指向原始的事件對象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.