V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chairuosen
V2EX  ›  问与答

今天面试时候被问到一个问题,关于JQUERY的live函数

  •  
  •   chairuosen · 2013 年 11 月 6 日 · 3789 次点击
    这是一个创建于 4461 天前的主题,其中的信息可能已经有所发展或是发生改变。
    面试官问我click等事件对于后添加的元素没有绑定,如何处理。
    考官给的正确答案是用live,而我想的是把这对象unbind再bind一遍。。。
    方法有点土但是它应该也工作。我之前也遇到过这种问题就用的自己这种方法做的。。。之前确实不知道live
    两种方法是不是都可以?
    性能方面呢?
    16 条回复    2014-11-20 10:03:02 +08:00
    lichao
        1
    lichao  
       2013 年 11 月 6 日   ❤️ 1
    显然你的答案不过关,即使它也能工作
    wenbinwu
        2
    wenbinwu  
       2013 年 11 月 6 日
    live
    version deprecated: 1.7, removed: 1.9
    ijse
        3
    ijse  
       2013 年 11 月 6 日
    live() 好像废弃了, 建议使用delegate()

    用live相比你所说方法,性能更高些。
    liuyao729
        4
    liuyao729  
       2013 年 11 月 6 日
    1.9里面已经删除live了,改用on
    P233
        5
    P233  
       2013 年 11 月 6 日
    正想问这个问题呢

    $().on('click', function() {} );
    P233
        6
    P233  
       2013 年 11 月 6 日
    @P233 没编辑完不小心发出去了
    $().on('click', function() {} );
    $().on('mouseover', function() {} );

    可以简写成
    $().on({
    'click': function(),
    'mouseover': function ()
    });

    那么

    $(document).on('click', '#abc', function() {});
    $(document).on('mouseover', '#cba', function() {});

    可以写在一起吗?
    chairuosen
        7
    chairuosen  
    OP
       2013 年 11 月 6 日
    @lichao
    @wenbinwu
    @ijse
    @liuyao729
    @P233
    感谢,涨姿势
    ksc010
        8
    ksc010  
       2013 年 11 月 6 日   ❤️ 1
    这个貌似叫做 事件委托
    能很大提升效率
    zythum
        9
    zythum  
       2013 年 11 月 6 日   ❤️ 1
    live 已经废弃了。 现在on可以用一切。
    catfan
        10
    catfan  
       2013 年 11 月 6 日   ❤️ 1
    @P233

    $(document)
    .on('click', '#abc', function() {});
    .on('mouseover', '#cba', function() {})
    ;
    catfan
        11
    catfan  
       2013 年 11 月 6 日   ❤️ 1
    @P233

    晕,这里居然不支持tab..

    $(document)
    .on('click', '#abc', function() {})
    .on('mouseover', '#cba', function() {})
    ;
    P233
        12
    P233  
       2013 年 11 月 6 日
    @catfan 学到了,感谢
    wyx
        13
    wyx  
       2013 年 11 月 7 日
    哈哈,不知道live能不能搞定事件循环绑定(或者叫多次绑定)造成的问题。
    yimity
        14
    yimity  
       2013 年 11 月 8 日   ❤️ 1
    live 早都已经废弃了。delegate 也不建议用了,现在是 on 统一天下。
    konakona
        15
    konakona  
       2014 年 11 月 19 日
    感觉楼主挂掉是因为:
    不管你是如何解决问题的,而是你有没有掌握基础的问题。
    在你不能掌握好基础的前提下,无论你如何凑巧而出色的解决了问题,始终是不稳定的,仍然需要补充基础。

    jquery历代的改变不多,稍微花点心思看下最新版的手册都有标注哪些已经过时的语法。
    chairuosen
        16
    chairuosen  
    OP
       2014 年 11 月 20 日
    @konakona 楼主没有挂掉。。。楼主入职一年了。。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1314 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:17 · PVG 01:17 · LAX 09:17 · JFK 12:17
    ♥ Do have faith in what you're doing.