最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript阻止事件冒泡和默認(rèn)行為的方法舉例

 更新時(shí)間:2024年10月10日 09:51:34   作者:秀秀_heo  
JavaScript事件的默認(rèn)行為指瀏覽器自動(dòng)執(zhí)行的操作,如鏈接跳轉(zhuǎn)或表單提交,阻止這些行為可以使用event.preventDefault()、return?false或event.returnValue屬性,event.stopPropagation()用于阻止事件傳播,不直接阻止默認(rèn)行為,需要的朋友可以參考下

默認(rèn)行為

在JavaScript中,事件默認(rèn)行為是指在特定的事件發(fā)生時(shí)瀏覽器自動(dòng)執(zhí)行的操作。例如,當(dāng)用戶單擊一個(gè)鏈接時(shí),瀏覽器會(huì)自動(dòng)跳轉(zhuǎn)到鏈接的URL頁面;form 元素 的 action 屬性值表單內(nèi)容要提交的地址,而用戶點(diǎn)擊表單元素中嵌套的提交按鈕時(shí),就會(huì)有一個(gè)默認(rèn)的提交操作。

而有時(shí)候,不需要這些默認(rèn)行為。比如,我們提交表單希望ajax 異步發(fā)送到服務(wù)器,不需要form 的默認(rèn)事件提交跳轉(zhuǎn)行為。

一句話說就是 html 元素自帶的行為。

阻止默認(rèn)行為

1. 使用event.preventDefault()方法:

這是阻止事件默認(rèn)行為最常用的方法之一。當(dāng)事件被觸發(fā)時(shí),可以調(diào)用event.preventDefault()方法來阻止瀏覽器執(zhí)行其默認(rèn)行為。例如,在單擊鏈接時(shí),可以通過以下方式阻止瀏覽器跳轉(zhuǎn)到鏈接的URL頁面:

document.querySelector('a').addEventListener('click', function(event) {
  event.preventDefault();
});

2. 使用return false:

在某些情況下,可以在事件處理程序中使用return false來阻止事件默認(rèn)行為。這種方式通常用于內(nèi)聯(lián)事件處理程序,例如onclick屬性。例如,以下代碼將阻止單擊鏈接時(shí)的默認(rèn)行為:

注意:如果寫在 jQuery 中,能夠同時(shí)阻止默認(rèn)行為和阻止冒泡。

<a href="#" rel="external nofollow"  onclick="return false;">點(diǎn)擊我不會(huì)跳轉(zhuǎn)</a>

3. 使用event.returnValue屬性:

在舊版本的IE瀏覽器中,可以使用event.returnValue屬性來阻止事件默認(rèn)行為(現(xiàn)在很多瀏覽器也支持)。將event.returnValue設(shè)置為false可以阻止默認(rèn)行為的執(zhí)行。例如:

document.querySelector('a').attachEvent('onclick', function(event) {
  event.returnValue = false;
});

4. 使用event.stopPropagation()方法(僅阻止事件傳播):

阻止事件傳播。 event.stopPropagation()方法用于阻止事件的進(jìn)一步傳播,而不是直接阻止事件的默認(rèn)行為。它可以用于停止事件冒泡到父元素或其他事件監(jiān)聽器。例如:

document.querySelector('.child').addEventListener('click', function(event) {
  event.stopPropagation();
});

5. 使用 cancelable 屬性

查看狀態(tài)。 該屬性表示事件是否可以取消,返回一個(gè)布爾值。該屬性是只讀屬性。true 表示可以取消。

<a id="test"  rel="external nofollow"  rel="external nofollow" >百度</a>
<script>
    let test = document.getElementById('test');
    test.onclick = function (e) {
        // 可以取消事件的默認(rèn)行為
        console.log(e.cancelable)
    }
</script>

6. defaultPrevented 方法

查看狀態(tài)。 也是 event的一個(gè)屬性,表示默認(rèn)行為是否被阻止,true 表示被阻止。

<a id="test"  rel="external nofollow"  rel="external nofollow" >百度</a>
<script>
    let test = document.getElementById('test');
    test.onclick = function (e) {
        e.preventDefault()
        console.log(e.defaultPrevented)  // true
    }
</script>

需要注意的是,不同的事件有不同的默認(rèn)行為,因此阻止默認(rèn)行為的方法可能會(huì)有所不同。一些常見的事件默認(rèn)行為包括表單提交、鏈接點(diǎn)擊、表單元素的鍵盤輸入等。

總結(jié)起來,使用event.preventDefault()方法是最常見和推薦的阻止事件默認(rèn)行為的方法。其他方法如return falseevent.returnValue屬性在特定情況下可能有用,但不如event.preventDefault()方法靈活和通用。另外,event.stopPropagation()方法用于阻止事件傳播,而不是直接阻止事件的默認(rèn)行為。

事件冒泡

事件冒泡是指當(dāng)?個(gè)?元素觸發(fā)了某個(gè)事件后,事件會(huì)?直冒泡到它的?元素,直到到達(dá)?檔根節(jié)點(diǎn)。

阻止事件冒泡

event.stopPropagation()

document.getElementById("child").addEventListener("click", function (event) {
  // 阻?事件冒泡
  event.stopPropagation();
});

總結(jié) 

到此這篇關(guān)于JavaScript阻止事件冒泡和默認(rèn)行為的文章就介紹到這了,更多相關(guān)JS阻止事件冒泡和默認(rèn)行為內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • 深入淺出理解JavaScript高級(jí)定時(shí)器原理與用法

    深入淺出理解JavaScript高級(jí)定時(shí)器原理與用法

    這篇文章主要介紹了JavaScript高級(jí)定時(shí)器原理與用法,結(jié)合實(shí)例形式分析了javascript重復(fù)定時(shí)器相關(guān)問題與解決方法,并描述了函數(shù)節(jié)流的原理與相關(guān)操作方法,需要的朋友可以參考下
    2018-08-08
  • 二叉樹的非遞歸后序遍歷算法實(shí)例詳解

    二叉樹的非遞歸后序遍歷算法實(shí)例詳解

    這篇文章主要介紹了二叉樹的非遞歸后序遍歷算法實(shí)例,需要的朋友可以參考下
    2014-02-02
  • js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實(shí)例分析

    js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實(shí)例分析

    這篇文章主要介紹了js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作,結(jié)合實(shí)例形式分析了JavaScript基本dom事件、script在head和body中放置的區(qū)別、以及Dom的增刪改創(chuàng)建等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • js實(shí)現(xiàn)無限瀑布流實(shí)例方法

    js實(shí)現(xiàn)無限瀑布流實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于js實(shí)現(xiàn)無限瀑布流實(shí)例方法以及相關(guān)代碼,需要的朋友們學(xué)習(xí)下吧。
    2019-09-09
  • js使用棧來實(shí)現(xiàn)10進(jìn)制轉(zhuǎn)8進(jìn)制與取除數(shù)及余數(shù)

    js使用棧來實(shí)現(xiàn)10進(jìn)制轉(zhuǎn)8進(jìn)制與取除數(shù)及余數(shù)

    這篇文章主要介紹了js使用棧來實(shí)現(xiàn)10進(jìn)制轉(zhuǎn)8進(jìn)制、js取除數(shù)、余數(shù),需要的朋友可以參考下
    2014-06-06
  • js彈出div并顯示遮罩層

    js彈出div并顯示遮罩層

    彈出div顯示遮罩層的效果,想必大家都有見到過吧,下面有個(gè)示例,大家可以參考下
    2014-02-02
  • 淺談js函數(shù)中的實(shí)例對(duì)象、類對(duì)象、局部變量(局部函數(shù))

    淺談js函數(shù)中的實(shí)例對(duì)象、類對(duì)象、局部變量(局部函數(shù))

    下面小編就為大家?guī)硪黄獪\談js函數(shù)中的實(shí)例對(duì)象、類對(duì)象、局部變量(局部函數(shù))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 最新評(píng)論

    牟定县| 琼中| 吕梁市| 莱西市| 宁都县| 罗田县| 麻江县| 鄂托克旗| 宁波市| 邛崃市| 嘉义县| 邢台市| 台北县| 广西| 沙河市| 拉萨市| 海淀区| 佛教| 岳普湖县| 博客| 自贡市| 宝应县| 武冈市| 十堰市| 绵竹市| 锡林郭勒盟| 岳池县| 东城区| 昌乐县| 启东市| 慈利县| 股票| 大石桥市| 博白县| 靖远县| 周宁县| 天台县| 华蓥市| 普宁市| 天等县| 隆昌县|