zoukankan      html  css  js  c++  java
  • JavaScript:void(0);的作用

    JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

    void 操作符用法格式如下:
    1. javascript:void (expression)
    2. javascript:void expression
    expression是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。我们可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。
    <a href=”javascript:void(0)”>单击此处什么也不会发生</a> 

    在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶端,用户体验不好。

    目前有如下几种解决办法:
    1)点击链接后不做任何事情 

    代码如下:
    <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> 
  • 相关阅读:
    commons-logging.jar 和 log4j.jar 的关系
    百钱买百鸡
    reflect
    golang结构体、接口、反射
    golang文件操作
    sqlx使用说明
    go example
    goroutine
    生成二维码
    method&interface
  • 原文地址:https://www.cnblogs.com/ljn-/p/5095877.html
Copyright © 2011-2022 走看看