2011-08-21 77 views
3

可能重複:
What's the effect of adding 'return false' to an onclick event?
When and why to 'return false' in javascript?返回與否有什麼區別?

我的意思是,如果我有這樣的功能:

function openMask() { 
    alert("enter"); 
} 

豈不是更好稱其爲:

<a href="javascript:void(0);" onclick="openMask()">Link</a> 

或:

<a href="javascript:void(0);" onclick="openMask(); return false;">Link</a> 

???我真的很好奇!永遠不要理解差異...

+0

請搜索第一下一次! –

回答

4

在DOM事件處理程序(如onclick)中,返回true表示「繼續該事件」,並返回false表示「不」。

在這種情況下,它不是完全有意義的,因爲您的href已經是javascript:void(0)(它不會做任何事情)。

注意,雖然,javascript:的URI應該被避免,這不是非JavaScript的用戶來說非常實用,所以你應該提供一個備用的頁面,然後return false變得更有意義:

JS:

function openMask() { 
    alert("enter"); 
    return false; 
} 

HTML:

<a href="fallbackpage.html" onclick="return openMask();">Link</a> 
1

return false導致瀏覽器忽略href。在您的具體的例子也改變不了什麼,因爲href什麼都不做,但如果你有這樣的事情href='#'會的問題

+0

並且最好寫'javascript:void(0);'或'javascript:void(0)'(有或沒有';')? – markzzz

+0

@markzzz:最好的辦法是擁有一個合適的URL:http://stackoverflow.com/questions/4842953/or-javascriptvoid0。如果JavaScript被禁用會怎麼樣?你的鏈接不會做任何事情。 –

+0

@Felix Kling:你是什麼意思?我不會鏈接到任何方式...... – markzzz

1
return false 

手段阻止事件的默認行爲。在你的榜樣,那就是防止瀏覽器打開鏈接

3

最好的網址是使用:

<a href="/page/with/opened/mask" onclick="openMask(); return false;">Link</a> 

沒有JavaScript這樣的用戶(包括谷歌機器人)可以使用你的網站。

+0

+1,絕對應該有一個'href',不管JavaScript – orip