sd4399340
V2EX  ›  问与答

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

  •  
  •   sd4399340 · Mar 29, 2012 · 6904 views
    This topic created in 5161 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
        1
    sonicwu  
       Mar 29, 2012
    href="javascript:;"
    master
        2
    master  
       Mar 29, 2012
    关于那个javascript:void();引发的血案神马的→_→
    dongsheng
        3
    dongsheng  
       Mar 29, 2012
    用href="###"就不会跳
    kaifazhe
        5
    kaifazhe  
       Mar 29, 2012
    href="javascript:"
    j1anb1n
        6
    j1anb1n  
       Mar 29, 2012
    href="javascript:false;"
    darasion
        7
    darasion  
       Mar 29, 2012
    习惯用#号,不过我觉得在后边加个有意义的名字更好。
    例如这样:

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

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

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

    花括号喜欢{

    而不习惯
    {

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

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

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