2011-08-21 165 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