400-650-7353
您所在的位置:首頁 > IT干貨資料 > web前端 > 【W(wǎng)eb前端基礎(chǔ)知識】阻止a標(biāo)簽的跳轉(zhuǎn)

【W(wǎng)eb前端基礎(chǔ)知識】阻止a標(biāo)簽的跳轉(zhuǎn)

  • 發(fā)布: Web前端培訓(xùn)
  • 來源:
  • 2021-07-26 15:25:18
  • 閱讀()
  • 分享
  • 手機(jī)端入口

在我們平時寫練習(xí)的過程當(dāng)中,經(jīng)常會用到a標(biāo)簽來進(jìn)行鏈接跳轉(zhuǎn)。在很多情況下,我們不需要讓A標(biāo)簽跳轉(zhuǎn)到另外一個鏈接。我們會選擇給我們會選擇給a標(biāo)簽的href屬性內(nèi)容設(shè)置為#,成為一個錨點(diǎn)連接。

即設(shè)置為:

  1. <a href="#">這是一個鏈接</a> 

但這時候我們也存在著一個問題,即如果頁面過長有滾動條,且希望通過鏈接的 onclick事件執(zhí)行操作,點(diǎn)擊時就會跳轉(zhuǎn)到頁面的頂部,但很多頁面不需要這樣的效果,那今天我們就來給大家分享一下,如何阻止a標(biāo)簽的跳轉(zhuǎn)。

第一種方法:

將它的 href屬性設(shè)為 javascript:void(0); ,而不要是 #,這可以防止不必要的頁面跳動;

即設(shè)置為:

  1. <a href="javascript: void(0)">這是一個鏈接</a> 

第二種方法:

將它的 href屬性設(shè)為 javascript:; ,js內(nèi)容不寫任何內(nèi)容,即設(shè)置為:

  1. <a href="javascript:;">這是一個鏈接</a>   

【W(wǎng)eb前端基礎(chǔ)知識】阻止a標(biāo)簽的跳轉(zhuǎn)

第三種方法:

假設(shè)鏈接中同時存在href與onclick,如果想讓href屬性下的動作不執(zhí)行,onclick必須得到一個false的返值;所以我們可以使用在進(jìn)行點(diǎn)擊時return false這種方式,即:

  1. <a href = "https://www.baidu.com"    
  2.    onclick = "alert( '阻止成功' ); return false "    
  3. >這是一個鏈接</a>   

但是這種方式html和js結(jié)構(gòu)不分離,結(jié)構(gòu)不夠明確,所以我們可以使用下一種方法。

第四種方法:

  1. <a href="https://www.baidu.com" >這是一個鏈接</a>   
  2. <script>   
  3. var link = document.getElementsByTagName("a") [0];   
  4. link.onclick = function () {   
  5.     alert ( '默認(rèn)跳轉(zhuǎn)阻止成功啦!' );   
  6.     return false;   
  7. }   
  8. </script>  

說明:這里我們綁定了一個點(diǎn)擊事件,點(diǎn)擊超鏈接以后,會先執(zhí)行alert( '默認(rèn)跳轉(zhuǎn)阻止成功啦!' ),再進(jìn)行默認(rèn)的跳轉(zhuǎn)動作。但是我們添加 return false;以后,點(diǎn)擊事件函數(shù)會直接結(jié)束,不會再執(zhí)行默認(rèn)的跳轉(zhuǎn)。

第五種方法:

但是如果想要給當(dāng)前標(biāo)簽綁定多個事件時,使用普通 標(biāo)簽.onclick = function() {}方法添加事件時,會進(jìn)行事件覆蓋,所以有時我們會使用綁定事件,即標(biāo)簽.addEventListener( 事件類型,事件處理函數(shù),是否捕獲 )方法。在綁定事件中想要阻止默認(rèn)事件要使用到事件對象event,之后使用event.preventDefault(),對于兼容IE瀏覽器的話,進(jìn)行設(shè)置ev.returnValue = false;

  1. <a href="https://www.baidu.com">這是一個鏈接</a>   
  2. <script>   
  3.     var link = document.getElementsByTagName("a") [0];   
  4.     if ( link.addEventListener ) {   
  5.     // 標(biāo)準(zhǔn)瀏覽器下綁定   
  6.         link.addEventListener( "click", fun,false);   
  7.    } else {   
  8.     // 低版本IE瀏覽器下綁定   
  9.          link.attachEvent( "onclick", fun );   
  10.     }   
  11.     function fun(ev) {   
  12.     // 對事件對象做一個兼容處理   
  13.         var ev = window.event || ev;   
  14.         // 標(biāo)準(zhǔn)瀏覽器    ev.preventDefault();   
  15.     // ie瀏覽器      ev.returnValue = false;   
  16.     // 對于其中一個做判斷,若有該方法則使用,沒有則說明為低版本IE瀏覽器   
  17.     ev.preventDefault ? ev.preventDefault() : ev.returnValue = false;   
  18.     }   
  19. </script> 
文章“【W(wǎng)eb前端基礎(chǔ)知識】阻止a標(biāo)簽的跳轉(zhuǎn)”已幫助

更多內(nèi)容

>>本文地址:http://liujunjsxg.cn/zhuanye/2021/69432.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營全域電商運(yùn)營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時間TIME