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

首頁 > 語言 > JavaScript > 正文

jQuery中阻止冒泡事件的方法介紹

2024-05-06 16:04:02
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery中阻止冒泡事件的方法介紹,需要的朋友可以參考下

一、冒泡事件簡介

當我們點擊一個控件的時候,如果包括這個控件的父控件也有click事件,則會繼續執行。
比如:div下的a都有click事件,點擊a的時候,會alert出現2次。這個現象叫做冒泡事件。


這個事件從原始元素開始一直冒泡到DOM樹的最上層。
目標元素: 任何一個事件的目標元素都是最開始的那個元素,在我們的這個例子中也就是按鈕,
并且它在我們的元素對象中以屬性的形式出現。使用事件代理的話我們可以把事 件處理器添加到一個元素上,
等待一個事件從它的子級元素里冒泡上來,并且可以很方便地得知這個事件是從哪個元素開始。
注意:
blur、focus、load和unload不能像其它事件一樣冒泡。事實上blur和focus可以用事件捕獲而非事件冒泡的方法獲得(在IE之外的其它瀏覽器中)。

二、阻止jQuery事件冒泡

jQuery對DOM的事件觸發具有冒泡特性。有時利用這一特性可以減少重復代碼,但有時候我們又不希望事件冒泡。這個時候就要阻止 jQuery.Event冒泡。

在jQuery.Event的文檔中的開頭得知,jQuery.Event對象是符合W3C標準的一個事件對象,同時jQuery.Event免去了檢查兼容IE的步驟。
jQuery.Event提供了一個非常簡單的方法來阻止事件冒泡:event.stopPropagation();

復制代碼 代碼如下:


$("p").click(function(event){
     event.stopPropagation();
     // do something
})

但是這個方法對使用live綁定的事件沒有作用,需要一個更簡單的方法阻止事件冒泡:return false;

復制代碼 代碼如下:


$(this).after("Another paragraph!");

return false;  });

兼容多個瀏覽器的終止冒泡函數:

復制代碼 代碼如下:


   function stopDefault(e) {
        //阻止默認瀏覽器動作(W3C)
        if (e && e.preventDefault)
            e.preventDefault();
        //IE中阻止函數器默認動作的方式
        else
            window.event.returnValue = false;
        return false;
    }

三、使用event.tatget屬性 明確事件對象

事件處理程序中的變量event保存著事件對象。而event.tatget屬性保存著發生事件的目標元素。這個屬性是DOM API中規定的,但是沒有被所有瀏覽器實現。jQuery對這個事件對象進行了必要的擴展,從而在任何瀏覽器中都能夠使用這個屬性。通過.target,可以確定DOM中首先接收到事件的元素。而且,我們知道this引用的是處理事件的DOM元素。

使用event.tatget屬性 明確事件對象

阻止事件冒泡的代碼如下:

復制代碼 代碼如下:


$(document).ready(function() {
    $('switcher').click(function(event){
        if(event.target == this)
        {
            $('switcher .button').toggleClass('hidden');
        }
    };)
});


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黄龙县| 神池县| 越西县| 常熟市| 呼伦贝尔市| 进贤县| 临安市| 吉木乃县| 丹寨县| 织金县| 于田县| 嘉峪关市| 乌什县| 格尔木市| 收藏| 周宁县| 宜城市| 南昌县| 临桂县| 吉隆县| 阳江市| 宁都县| 阿克苏市| 乌兰浩特市| 民县| 读书| 兴国县| 蒲江县| 文山县| 宁武县| 平定县| 许昌市| 景洪市| 花莲县| 正安县| 商丘市| 宜州市| 涞源县| 湖南省| 锡林浩特市| 德格县|