A標籤觸發onclick事件而不跳轉的多種解決方法

A標籤觸發onclick事件而不跳轉的多種解決方法javascript

 

一個標籤僅僅是要觸發onclick行爲,遇到了A標籤觸發onclick事件時不執行跳轉:css

在web頁面開發時,咱們常常會遇到下列狀況:

1.一個標籤僅僅是要觸發onclick行爲;
2.表現上要有鼠標的pointer指針顯示,或者其餘相似a標籤的視覺效果。
好比執行刪除操做時,爲了不誤操做,咱們要彈出對話框讓用戶肯定是否刪除。所以咱們常常會用連接<a></a>形式代替<button> 觸發onclick事件。
html


<script type="text/javascript">
function del(){
if(confirm("肯定刪除該記錄?")){
parent.window.location="執行刪除.jsp";
return true;
}
return false;
}
</script>
<a href="" target="mainFrame" class="STYLE4" onclick="del()" >刪除</a>
java


這樣作的後果是js代碼會跳轉到"執行刪除.jsp"頁面,而<a>標籤也會跳轉打開一個空頁面。由於html自己對 <a>標籤的href屬性作了處理,因此就會先執行咱們本身定義的方法,接着再運行它自身的方法(跳轉的方法)。

解決方法主要有四種,以下:
1. 不用a標籤,設定css或用js來表現(有點複雜);
2. 用a標籤,onclick屬性或onclick事件中返回false;(我的喜歡)
如:<a href="" target="mainFrame" class="STYLE4" onclick="del();return false" >刪除</a>
這是個執行順序的問題,<a>這個標籤的執行順序應該是先執行onclick 的腳本,最後才進行href參數指定頁面的跳轉。在onclick中返回false,就能夠停止<a>標籤的工做流程,也就是不讓頁面跳轉到href參數指定的頁面。
3. 用href="javascript:void(0)"這種僞協議;(這種僞協議,少寫的好)
即:<a href="javascript:void(0)" target="mainFrame" class="STYLE4" onclick="del()" >刪除</a>
4. <a href="#" class="STYLE4" onclick="del()" >刪除</a>。(老是跳轉到當前頁面頂部,當頁面內容較多時,仍是會有跳轉的感受)
web

相關文章
相關標籤/搜索