JavaScript:void(0);的做用

JavaScript中void是一個操做符,該操做符指定要計算一個表達式可是不返回值。javascript

void 操做符用法格式以下:
1. javascript:void (expression)
2. javascript:void expression
expression是一個要計算的 JavaScript 標準的表達式。表達式外側的圓括號是可選的,可是寫上去是一個好習慣。咱們可使用 void 操做符指定超級連接。表達式會被計算可是不會在當前文檔處裝入任何內容。面的代碼建立了一個超級連接,當用戶點擊之後不會發生任何事。當用戶點擊連接時,void(0) 計算爲 0,但在 JavaScript 上沒有任何效果。
<a href=」javascript:void(0)」>單擊此處什麼也不會發生</a> java

 

在作頁面時,若是想作一個連接點擊後不作任何事情,或者響應點擊而完成其餘事情,能夠設置其屬性 href = "#",可是,這樣會有一個問題,就是當頁面有滾動條時,點擊後會返回到頁面頂端,用戶體驗很差。

目前有以下幾種解決辦法:
1)點擊連接後不作任何事情 web

代碼以下:
<a href="javascript:void(0);" >test</a>
<a href="javascript:;" >test</a>
<a href="####" >test</a> //使用2個到4個#,見的大可能是"####",也有使用"#all"等其餘的 
 
2)點擊連接後,響應用戶自定義的點擊事件 
 
代碼以下:
<a href="javascript:void(0)" onclick="doSomething()">test</a>
<a href="#" onclick="doSomething();return false;">什麼問題都解決了,包括瀏覽器不兼容問題</a> //或者直接使用href=""
<a href="#" onclick="alert();event.returnValue=false;">test</a> 
 
注意: 
1.javascript:void(0)這種僞協議,少寫的好,若是你看過一些web標準的書就知道爲何了。(不懂,原話摘的,暫作記錄)
2.連接(href)直接使用javascript:void(0)在IE中可能會引發一些問題,好比:形成gif動畫中止播放等,因此,最安全的辦法仍是使用「####」。爲防止點擊連接後跳轉到頁首,onclick事件return false便可。
3.若是僅僅是想鼠標移過,變成手形,可使用 
代碼以下:
<span style="cursor:pointer" onclick="foo()">Click Me!</span> 
相關文章
相關標籤/搜索