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> 
相关文章
相关标签/搜索