A標簽中 href 和 onclick用法、區別、優先級別


(內容摘自:https://blog.csdn.net/chenchunlin526/article/details/77346049

 

Html A標簽中 href 和 onclick 同時使用的問題 優先級別

1 順序 
ie 6 : href 先觸發 onclick 后觸發 
其他瀏覽器 先觸發onlick 后觸發 href

2 href="javascript: xxx()" 
不能傳入this作為參數 
onclick可以

 代碼如下 復制代碼
<a href="javascript:alert('href event');" onclick="clickevent(this);">

3 優先觸發的方法如果返回 false 導致后一個事件不被觸發 
比如

 代碼如下 復制代碼
<a href="javascript:alert('href event');" onclick="clickevent(this); return false;">


<a href="#"> 會導致頁面定位到書簽位置,


由於 1和 4 的原因 
在ie6 下 同時有 <a href="#" 和 onclick的時候 由於頁面先因為href重新載入了一次,導致 onclick事件被瀏覽器丟棄。


6 總結: 
1) 在不需要傳遞this作為方法的參數時候,推薦 
只使用href="JavaScript: "

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

 代碼如下 復制代碼
<a href="javascript:void(0);" onclick="doSomthing(this)" > 

 
如下面一個列子。
我們需要A在第一次和第二次點擊的時候 訪問 href 第3次以后的就訪問另一個地址
 

 代碼如下 復制代碼

var href=0

function clicka(obj)
{
 if (href==2)
 {
  obj.href="http://www.baidu.com?qc";
 }else
 {
  href++;
 }
 return true;
 
}

 
 
<a href="http://www.111cn.net/" target=_blank id="showa" onclick="clicka(this)">  開屏高速下載 </a> 

在a標簽的href與onclick中使用javascript的區別 


鏈接的 onclick 事件被先執行,其次是 href 屬性下的動作(頁面跳轉,或 javascript 偽鏈接); 
假設鏈接中同時存在 href 與 onclick,如果想讓 href 屬性下的動作不執行,onclick 必須得到一個 false 的返回值。不信,你可以將 goGoogle 函數中的 return false 注釋掉; 
如果頁面過長有滾動條,且希望通過鏈接的 onclick 事件執行操作。應將它的 href 屬性設為 javascript:void(0);,而不要是 #,這可以防止不必要的頁面跳動; 
如果在鏈接的 href 屬性中調用一個有返回值的函數,當前頁面的內容將被此函數的返回值代替; 
在按住Shift鍵的情況下會有所區別。
今天我遇到的問題,在IE6.0里以href的形式訪問不到parentNode。
盡量不要用javascript:協議做為A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE里面更會使gif動畫圖片停止播放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM