在JS中a標(biāo)簽加入單擊事件屏蔽href跳轉(zhuǎn)頁(yè)面
我們常用的在a標(biāo)簽中有點(diǎn)擊事件:
1.
a href="JavaScript:js_method();"
這是我們平臺(tái)上常用的方法,但是這種方法在傳遞this等參數(shù)的時(shí)候很容易出問(wèn)題,而且javascript:協(xié)議作為a的href屬性的時(shí)候不僅會(huì)導(dǎo)致不必要的觸發(fā)window.onbeforeunload事件,在IE里面更會(huì)使gif動(dòng)畫(huà)圖片停止播放。W3C標(biāo)準(zhǔn)不推薦在href里面執(zhí)行javascript語(yǔ)句
2.
a href="javascript:void(0);" onclick="js_method()"
這種方法是很多網(wǎng)站最常用的方法,也是最周全的方法,onclick方法負(fù)責(zé)執(zhí)行js函數(shù),而void是一個(gè)操作符,void(0)返回undefined,地址不發(fā)生跳轉(zhuǎn)。而且這種方法不會(huì)像第一種方法一樣直接將js方法暴露在瀏覽器的狀態(tài)欄。
3.
a href="javascript:;" onclick="js_method()"
這種方法跟跟2種類(lèi)似,區(qū)別只是執(zhí)行了一條空的js代碼。
4.
a href="#" onclick="js_method()"
這種方法也是網(wǎng)上很常見(jiàn)的代碼,#是標(biāo)簽內(nèi)置的一個(gè)方法,代表top的作用。所以用這種方法點(diǎn)擊后網(wǎng)頁(yè)后返回到頁(yè)面的最頂端。
5.
a href="#" onclick="js_method();return false;"
這種方法點(diǎn)擊執(zhí)行了js函數(shù)后return false,頁(yè)面不發(fā)生跳轉(zhuǎn),執(zhí)行后還是在頁(yè)面的當(dāng)前位置。
我看了下taobao的主頁(yè),他們采用的是第2種方法,而alibaba的主頁(yè)是采用的第1種方法,和我們的區(qū)別是每個(gè)href里的javascript方法都用try、catch包圍。
綜合上述,在a中調(diào)用js函數(shù)最適當(dāng)?shù)姆椒ㄍ扑]使用:
a href="javascript:void(0);" onclick="js_method()" a href="javascript:;" onclick="js_method()" a href="#" onclick="js_method();return false;"
解釋?zhuān)?/p>
javascript:是偽協(xié)議,表示url的內(nèi)容通過(guò)javascript執(zhí)行。 void(0)表示不作任何操作,這樣會(huì)防止鏈接跳轉(zhuǎn)到其他頁(yè)面。 這么做往往是為了保留鏈接的樣式,但不讓鏈接執(zhí)行實(shí)際操作,具體的操作交給鏈接的onclick事件處理.
以上所述是小編給大家介紹的在JS中a標(biāo)簽加入單擊事件屏蔽href跳轉(zhuǎn)頁(yè)面,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- angularjs項(xiàng)目的頁(yè)面跳轉(zhuǎn)如何實(shí)現(xiàn)(5種方法)
- Spring boot 跳轉(zhuǎn)到j(luò)sp頁(yè)面的實(shí)現(xiàn)方法
- Vue.js實(shí)戰(zhàn)之利用vue-router實(shí)現(xiàn)跳轉(zhuǎn)頁(yè)面
- AngularJS之頁(yè)面跳轉(zhuǎn)Route實(shí)例代碼
- AngularJS路由實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)實(shí)例
- ajax 提交數(shù)據(jù)到后臺(tái)jsp頁(yè)面及頁(yè)面跳轉(zhuǎn)問(wèn)題
- JS中頁(yè)面與頁(yè)面之間超鏈接跳轉(zhuǎn)中文亂碼問(wèn)題的解決辦法
- JS實(shí)現(xiàn)頁(yè)面內(nèi)跳轉(zhuǎn)的簡(jiǎn)單代碼
相關(guān)文章
Bootstrap學(xué)習(xí)筆記之進(jìn)度條、媒體對(duì)象實(shí)例詳解
這篇文章主要介紹了Bootstrap進(jìn)度條、媒體對(duì)象實(shí)例詳解,進(jìn)度條包括基礎(chǔ)進(jìn)度條,多彩進(jìn)度條,條紋狀進(jìn)度條等內(nèi)容,具體實(shí)現(xiàn)代碼大家參考下本文2017-03-03利用js動(dòng)態(tài)添加刪除table行的示例代碼
本篇文章主要是對(duì)利用js動(dòng)態(tài)添加刪除table行的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12配置eslint規(guī)范項(xiàng)目代碼風(fēng)格
這篇文章主要介紹了配置eslint規(guī)范項(xiàng)目代碼風(fēng)格,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03微信小程序轉(zhuǎn)換uniapp的遷移步驟以及遇到的問(wèn)題總結(jié)
最近公司有個(gè)需求,第一次遇到,把原生的微信小程序代碼轉(zhuǎn)換為uni-app項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于微信小程序轉(zhuǎn)換uniapp的遷移步驟以及遇到問(wèn)題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07詳解JavaScript的數(shù)據(jù)類(lèi)型以及數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
這篇文章主要介紹了JavaScript的數(shù)據(jù)類(lèi)型以及數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04微信小程序?qū)崿F(xiàn)活動(dòng)報(bào)名登記功能(實(shí)例代碼)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)活動(dòng)報(bào)名登記,本篇將介紹使用微信小程序?qū)崿F(xiàn)發(fā)起一個(gè)活動(dòng)報(bào)名的設(shè)計(jì),以此為基礎(chǔ),我們可以掌握微信小程序表單的基本用法,進(jìn)而在諸如疫情信息登記、出入報(bào)備等場(chǎng)景中使用小程序進(jìn)行開(kāi)發(fā),滿(mǎn)足相關(guān)的需求,需要的朋友可以參考下2022-09-09js或css實(shí)現(xiàn)滾動(dòng)廣告的幾種方案
今天無(wú)事逛網(wǎng),突然發(fā)現(xiàn)了一個(gè)很有趣的事情,(也許只有我覺(jué)得有趣).我看到一圖片竟然在我拖動(dòng)滾動(dòng)條的時(shí)候沒(méi)有動(dòng),也許你會(huì)說(shuō)我少見(jiàn)多怪,不信你去找個(gè)這樣的我看看,很少有的,一般的都是一拖動(dòng)圖片就在那跳得厲害。2010-01-01