sd4399340
V2EX  ›  问与答

前端们,大家是习惯href="#"还是href="javascript:void();"

  •  
  •   sd4399340 · Mar 29, 2012 · 7406 views
    This topic created in 5342 days ago, the information mentioned may be changed or developed.
    平常用JQuery给a绑定click事件,为了让鼠标hover上去显示手形,必须要指定href属性~

    以前都是用href="javascript:void();",觉得写起来字太多,后来用href="#",但是一点就会回到上面去,也有点闹心,大家一般什么习惯?还是直接在click时间里返回false啊?
    49 replies  •  2015-11-26 10:18:15 +08:00
    sonicwu
    sonicwu
    Mar 29, 2012
    1
    href="javascript:;"
    master
    master
    Mar 29, 2012
    2
    关于那个javascript:void();引发的血案神马的→_→
    dongsheng
    dongsheng
    Mar 29, 2012
    3
    用href="###"就不会跳
    kaifazhe
    kaifazhe
    Mar 29, 2012
    5
    href="javascript:"
    j1anb1n
    j1anb1n
    Mar 29, 2012
    6
    href="javascript:false;"
    darasion
    darasion
    Mar 29, 2012
    7
    习惯用#号,不过我觉得在后边加个有意义的名字更好。
    例如这样:

    href="#有意义的名字"
    herolee
    herolee
    Mar 29, 2012
    8
    javascript:;
    loo2k
    loo2k
    Mar 29, 2012
    9
    javascript:void(0)
    justfindu
    justfindu
    Mar 29, 2012
    10
    void(0) 貌似有一个什么小功能来着0 0
    hellosun
    hellosun
    Mar 29, 2012
    11
    href="###"
    underone
    underone
    Mar 29, 2012
    12
    ###
    dongbeta
    dongbeta
    Mar 29, 2012
    13
    教你一招:

    <a href="#this">这个点击不会移动页面哦</a>
    dongk
    dongk
    Mar 29, 2012
    14
    @master 求详情。。。
    lossdante
    lossdante
    Mar 29, 2012
    15
    为了hover显示手形指针么,那直接cursor:pointer;不就好了
    deepure
    deepure
    Mar 29, 2012
    16
    楼上+1
    airyland
    airyland
    Mar 29, 2012
    17
    1.cursor:pointer指定指针形状为手形。
    2.既然是绑定了事件,那e.preventDefault();就不会跳到页面上部了。
    3.从Graceful Degradation的角度来说,href应该写个可用地址。
    ong
    ong
    Mar 29, 2012
    18
    #;
    hilyjiang
    hilyjiang
    Mar 29, 2012
    19
    不喜欢在HTML里参杂JS代码,用#
    zxwind
    zxwind
    Mar 29, 2012
    20
    既然只是要绑定onclick并显示手形,用button+cursor:pointer就可以了吧
    EchoFUN
    EchoFUN
    Mar 29, 2012
    21
    @dongbeta really?所有的浏览器都兼容么?
    qiuai
    qiuai
    Mar 29, 2012
    22
    #
    hdlifes
    hdlifes
    Mar 29, 2012
    23
    LZ的头像和推上是一样的吗?
    javascript:; 常用
    aligo
    aligo
    Mar 29, 2012
    24
    我都是直接href到目标页面,然后需要异步在绑定click,可以做到兼容例如不支持js的设备(虽然现在已经很少了)和爬虫识别
    sd4399340
    sd4399340
    OP
    Mar 29, 2012
    25
    @hdlifes 一样啊,咱们不是互相关注的嘛
    dongbeta
    dongbeta
    Mar 29, 2012
    26
    @EchoFUN 兼容性未知,我在safari下正常
    lepture
    lepture
    Mar 29, 2012
    27
    # ,然后 e.preventDefault ,也就是jQuery里的 return false

    链接不会改,也不会跳。
    sd4399340
    sd4399340
    OP
    Mar 29, 2012
    28
    @lepture 其实这种蛮好的,也是有点麻烦~
    sd4399340
    sd4399340
    OP
    Mar 29, 2012
    29
    @dongsheng @hellosun @underone 这个真心不错~试试~
    sd4399340
    sd4399340
    OP
    Mar 29, 2012
    30
    @master 求科普~
    ygmpkk
    ygmpkk
    Mar 29, 2012
    31
    习惯用javascript:void();

    花括号喜欢{

    而不习惯
    {

    习惯问题吧
    shuang3281
    shuang3281
    Mar 29, 2012
    32
    javascript:;
    +1
    Mose
    Mose
    Mar 29, 2012
    33
    javascript:void();是什么作用?
    arzusyume
    arzusyume
    Mar 30, 2012
    34
    javascript:;
    算是洁癖吧,看到url后面的#很不爽
    hzlzh
    hzlzh
    Mar 30, 2012
    35
    用#,考虑到别人看的可读性,即便一些不懂的代码的人,也知道这里可以替换成链接。
    ohsc
    ohsc
    Mar 30, 2012
    36
    两个都不好,最佳体验是,href提供跳转同时js劫持跳转。

    我一般会用jquery的delegate指定凡是带上.nojump的链接都禁止跳转。

    这样好处是,当js还没加载时,用户可以使用降级版本。js加载后可以使用高级版本。
    lhj2100
    lhj2100
    Mar 30, 2012
    37
    #;页面不会跳动..
    smallcolor
    smallcolor
    Mar 30, 2012
    38
    #nogo
    NemoAlex
    NemoAlex
    Mar 30, 2012
    39
    如果有链接就href里写链接,JavaScript 在 Click 事件末尾 return false
    如果不是一个真正的链接,那么就不要加 href 属性,样式由 CSS 控制
    href="#" 这种做法会在 uri 里加上没有意义的 # 号
    href="#this" 是胡扯,# + 任意一个不存在的标签页面就不会跳转了,可是这种东西没有意义,并且丑陋
    FrankFang128
    FrankFang128
    Mar 30, 2012
    40
    @master 什么血案?求link
    mew
    mew
    Mar 30, 2012
    41
    好深奥。
    ohsc
    ohsc
    Mar 30, 2012
    42
    其实都能实现你所要的问题。
    所以你要考虑的是语义、维护成本和极端情况下的体验。根据具体需求再决定选哪个。
    xwsoul
    xwsoul
    Mar 30, 2012
    43
    ### 表示没有压力..但是我不喜欢url里出现 ### Orz 所以我比较喜欢javascript:void(0);
    westup
    westup
    Mar 30, 2012
    44
    我用#,然后 e.preventDefault();
    frittle
    frittle
    Mar 30, 2012
    45
    javascript:void(0); 忘了哪个浏览器void()括弧里面没0的话会报错。
    trista099
    trista099
    Mar 30, 2012
    46
    爱油,亲,看着有点眼熟啊
    sd4399340
    sd4399340
    OP
    Mar 31, 2012
    47
    @trista099 哥早就关注你了亲~
    sox
    sox
    Nov 26, 2015
    48
    #; #$ #^ $* #.
    sox
    sox
    Nov 26, 2015
    49
    #+无意义字符。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4494 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 122ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    ♥ Do have faith in what you're doing.