怎么让js只弹出一次

      //选择内容
        $(".joy-alert-list li").click(function(){
            if($(this).hasClass('current')){
                $(this).removeClass('current');
            }else{
            $(this).addClass('current');
            };
            
        //点击确定按钮
        $(".joy-btn").click(function(){
            var currList = $('.current').length;
            alert(currList);
        });    
        });

点击确定按钮,弹出次数一直在增加。第一次选择,弹出一次,然后再选择,点击确定会弹出2次。

阅读 6.3k
4 个回答
$('.joy-alert-list li').click(function(){
  $(this).toggleClass('current');
});
$('.joy-btn').click(function(){
  alert($('.current').length);
});

.joy-btn的点击事件不应该放在.joy-alert-list li的点击事件里面,否则每点击一次li,就增加一次joy-btn的绑定事件,代码应该改为:

         //选择内容
        $(".joy-alert-list li").click(function(){
            if($(this).hasClass('current')){
                $(this).removeClass('current');
            }else{
            $(this).addClass('current');
            };              
        });
        
        //点击确定按钮
        $(".joy-btn").click(function(){
            var currList = $('.current').length;
            alert(currList);
        });         

这源码排版......

jquery有个one方法,绑定one的只会执行一次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题