明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Html的a標(biāo)簽中href與onclick用法區(qū)別以及優(yōu)先級(jí)別

[摘要]本文主要分享一篇關(guān)于Html A標(biāo)簽中href和onclick用法、區(qū)別、優(yōu)先級(jí)別,具有很好的參考價(jià)值,有需要了解的朋友可以看看如果不設(shè)置 href屬性在IE6下面會(huì)不響應(yīng)hover。雙擊后會(huì)選中標(biāo)簽的父容器而非這個(gè)一a標(biāo)簽(IE下都存在這一問(wèn)題)。代碼如下 <a href="ja...
本文主要分享一篇關(guān)于Html A標(biāo)簽中href和onclick用法、區(qū)別、優(yōu)先級(jí)別,具有很好的參考價(jià)值,有需要了解的朋友可以看看

如果不設(shè)置 href屬性在IE6下面會(huì)不響應(yīng)hover。雙擊后會(huì)選中標(biāo)簽的父容器而非這個(gè)一a標(biāo)簽(IE下都存在這一問(wèn)題)。

代碼如下

<a href="javascirpt:fn(this)"> <a onclick="fn(this)">

假定我們有個(gè)fn方法,需要取到這個(gè)元素,第一個(gè)方法傳入的this是空值。


所以,比較推薦的寫法是

代碼如下

<a href="javascript:void(0)" onclick="fn(this)">

下面代碼則執(zhí)行了subgo()函數(shù),

代碼如下

<a href="javascript:void(0)" onclick="subgo()">點(diǎn)我</a>

在這里,javascript:void(0),沒(méi)啟實(shí)質(zhì)上的作用,它僅僅是一個(gè)死鏈接,執(zhí)行的函數(shù)是subgo()。

代碼如下

<a href="http://blog.163.com/wb_zhaoyuwei/blog/#" onclick="subgo()">點(diǎn)我</a>與<a href="javascript:void(0)" onclick="subgo()">點(diǎn)我</a>區(qū)別。

實(shí)際上 #包含了一個(gè)位置信息默認(rèn)的錨是#top 也就是網(wǎng)頁(yè)的上端 ,而javascript:void(0) 僅僅表示一個(gè)死鏈接,沒(méi)有任何信息。所以調(diào)用腳本的時(shí)候最好用void(0)

href一般是指向一個(gè)URL地址,也可以調(diào)用javascript ,如href="javascript:xxx();",文檔中推薦這樣寫:

代碼如下

<a href="http://www.jb51.net/zhongxing/U880/ javascript:void(0)" onclick="xxx();">xx</a>

但是這種方法在復(fù)雜環(huán)境有時(shí)會(huì)產(chǎn)生奇怪的問(wèn)題,盡量不要用javascript:協(xié)議做為A的href屬性,這樣不僅會(huì)導(dǎo)致不必要的觸發(fā)window.onbeforeunload事件,在IE里面更會(huì)使gif動(dòng)畫圖片停止播放。

我們知道鏈接的 onclick 事件被先執(zhí)行,其次是 href 屬性下的動(dòng)作(頁(yè)面跳轉(zhuǎn),或 javascript 偽鏈接),如果不想執(zhí)行href 屬性下的動(dòng)作執(zhí)行,onclick 需要要返回 false ,一般是這樣寫onclick="xxx();return false;".

TabPane的JS源碼,由于onclick沒(méi)有返回FALSE,當(dāng)IFRMAE中關(guān)閉TABPANE時(shí)會(huì)導(dǎo)致href執(zhí)行,頁(yè)面顯示有問(wèn)題。解決辦法就是將下面代碼復(fù)制到使用TAB的JSP中。

Html A標(biāo)簽中 href 和 onclick 同時(shí)使用的問(wèn)題 優(yōu)先級(jí)別

1 順序

ie 6 : href 先觸發(fā) onclick 后觸發(fā)

其他瀏覽器 先觸發(fā)onlick 后觸發(fā) href

2 href="javascript: xxx()"

不能傳入this作為參數(shù)

onclick可以

代碼如下

<a href="javascript:alert('href event');" onclick="clickevent(this);">

3 優(yōu)先觸發(fā)的方法如果返回 false 導(dǎo)致后一個(gè)事件不被觸發(fā)

比如

代碼如下

<a href="javascript:alert('href event');" onclick="clickevent(this); return false;">

4

<a href="#"> 會(huì)導(dǎo)致頁(yè)面定位到書簽位置,

5

由于 1和 4 的原因

在ie6 下 同時(shí)有 <a href="#" 和 onclick的時(shí)候 由于頁(yè)面先因?yàn)閔ref重新載入了一次,導(dǎo)致 onclick事件被瀏覽器丟棄。

6 總結(jié):

1) 在不需要傳遞this作為方法的參數(shù)時(shí)候,推薦

只使用href="JavaScript: "

2) 如果需要使用this參數(shù),推薦

代碼如下

<a href="javascript:void(0);" onclick="doSomthing(this)" >

如下面一個(gè)列子。

我們需要A在第一次和第二次點(diǎn)擊的時(shí)候 訪問(wèn) href 第3次以后的就訪問(wèn)另一個(gè)地址

代碼如下

var href=0
function clicka(obj)
{
 if (href==2)
 {
 obj.href="http://www.baidu.com?qc";
 }else
 {
 href++;
 }
 return true;
}
 <a href="http://www.jb51.net/" target=_blank id="showa" onclick="clicka(this)"> 開(kāi)屏高速下載 </a>

在a標(biāo)簽的href與onclick中使用javascript的區(qū)別

鏈接的 onclick 事件被先執(zhí)行,其次是 href 屬性下的動(dòng)作(頁(yè)面跳轉(zhuǎn),或 javascript 偽鏈接);

假設(shè)鏈接中同時(shí)存在 href 與 onclick,如果想讓 href 屬性下的動(dòng)作不執(zhí)行,onclick 必須得到一個(gè) false 的返回值。不信,你可以將 goGoogle 函數(shù)中的 return false 注釋掉;

如果頁(yè)面過(guò)長(zhǎng)有滾動(dòng)條,且希望通過(guò)鏈接的 onclick 事件執(zhí)行操作。應(yīng)將它的 href 屬性設(shè)為 javascript:void(0);,而不要是 #,這可以防止不必要的頁(yè)面跳動(dòng);

如果在鏈接的 href 屬性中調(diào)用一個(gè)有返回值的函數(shù),當(dāng)前頁(yè)面的內(nèi)容將被此函數(shù)的返回值代替;

在按住Shift鍵的情況下會(huì)有所區(qū)別。

今天我遇到的問(wèn)題,在IE6.0里以href的形式訪問(wèn)不到parentNode。

盡量不要用javascript:協(xié)議做為A的href屬性,這樣不僅會(huì)導(dǎo)致不必要的觸發(fā)window.onbeforeunload事件,在IE里面更會(huì)使gif動(dòng)畫圖片停止播放。

就這些,花了不少時(shí)間在這上面。

[緣由]

用CheckBoxList控件時(shí)想實(shí)現(xiàn)在每個(gè)checkbox后再加鏈接的功能,點(diǎn)鏈接實(shí)現(xiàn)一些功能之外,還要把checkbox選中。

代碼如下

<input type="checkbox" name="chk" id="chk">
<label for="chk">選中它<a onclick="this.parentNode.click();" href="http://luwenxiang1990.blog.163.com/blog/#" style="border:solid 1px blue;">[label中的鏈接]</a></label>

最后用parentNode來(lái)實(shí)現(xiàn)的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)!

相關(guān)推薦:

HTML的a標(biāo)簽href屬性指定相對(duì)路徑與絕對(duì)路徑的用法講解

以上就是Html的a標(biāo)簽中href和onclick用法區(qū)別以及優(yōu)先級(jí)別的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。