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

举个粟子: html 的一个 button,如何在点击 10 下后不响应 click 事件?

  •  
  •   MntCw · 2014-11-02 08:48:33 +08:00 · 3456 次点击
    这是一个创建于 3678 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是这么做的,在document里定义一个i
    $("#btn").click(function(){
    if( i != 10){
    //do something
    }

    });

    但我觉得应该有更好的方式来实现,不知道大家有没有什么建议?
    12 条回复    2014-11-02 21:21:07 +08:00
    loading
        1
    loading  
       2014-11-02 08:57:54 +08:00
    提醒一下:如果和服务器有交互,记得服务器也限制。
    sanddudu
        2
    sanddudu  
       2014-11-02 09:01:09 +08:00 via iPhone
    removeListener 不行吗
    kran
        3
    kran  
       2014-11-02 09:04:07 +08:00 via iPhone
    $.data()
    或者返回闭包
    MntCw
        4
    MntCw  
    OP
       2014-11-02 09:25:57 +08:00
    @sanddudu 在哪个时候remove 是在else里面吗?
    MntCw
        5
    MntCw  
    OP
       2014-11-02 09:33:00 +08:00
    @kran 请教一下
    MntCw
        6
    MntCw  
    OP
       2014-11-02 09:33:16 +08:00
    @loading OK 了解,谢啦!!
    sanddudu
        7
    sanddudu  
       2014-11-02 09:40:37 +08:00 via iPhone
    @MntCw 是的
    如果到 10 次,就移除这个监听器
    kran
        8
    kran  
       2014-11-02 09:41:51 +08:00
    $('#btn').click((function(times){
    return function(){
    //代码
    }
    })(10));
    这样应该可以的.我不做前端,你式一下
    MntCw
        9
    MntCw  
    OP
       2014-11-02 09:51:39 +08:00
    @sanddudu OK 了解了,但是可以试试@kran的做法
    MntCw
        10
    MntCw  
    OP
       2014-11-02 09:53:18 +08:00
    @kran OK 我试一下,看来我对闭包的理解还不够
    littlepanzh
        11
    littlepanzh  
       2014-11-02 11:07:37 +08:00 via iPhone
    var fn = function (event) {
    var $target = $(event.currentTarget);
    var i = $target.data('i') || 0;
    i = ~~i + 1;
    $target.data('i', i);
    // do something;
    if (i > 9) {
    $target.off('click', fn);
    }
    };
    $('#btn').click(fn);
    MntCw
        12
    MntCw  
    OP
       2014-11-02 21:21:07 +08:00
    @littlepanzh 看明白了,感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1032 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:30 · PVG 04:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.