【问题标题】:jquery click function conflictsjquery点击函数冲突
【发布时间】:2011-05-15 13:16:23
【问题描述】:

将点击函数放入点击函数时出现问题。我也试过mousedown(),但同样的问题。当 else 被执行并点击按钮。点击函数运行了两次。

$('.tableData').click(function(){ if($('tr.trSelected').length > 1) { $('.box-edit').addClass('btn-disabled'); $('.box-info').addClass('btn-disabled'); $('.nav-edit').unbind('click'); $('.nav-info').unbind('点击'); } 别的 { $('.box-edit').removeClass('btn-disabled'); $('.box-info').removeClass('btn-disabled'); $('.nav-edit').bind('click', function() { $('.sub-nav-edit').slideToggle(200); $('.box-edit').toggleClass('sub-nav-active'); }); } });

【问题讨论】:

    标签: jquery


    【解决方案1】:

    也许您应该将该 if 语句放入您的“单击”函数中,并在那里测试当前是否选择了按钮。这样您就不需要取消绑定/重新绑定函数。

    【讨论】:

      【解决方案2】:

      你需要告诉它,停止处理冒泡点击事件,使用stopImmediatePropagation(事件参数,我添加了e)。

      $('.tableData').click(function(e){
      
          if($('tr.trSelected').length > 1) {
              $('.box-edit').addClass('btn-disabled');
              $('.box-info').addClass('btn-disabled');
      
              $('.nav-edit').unbind('click');
              $('.nav-info').unbind('click');
      
          }
          else {
              $('.box-edit').removeClass('btn-disabled');
              $('.box-info').removeClass('btn-disabled');
              e.stopImmediatePropagation();
              $('.nav-edit').bind('click', function() {
                  $('.sub-nav-edit').slideToggle(200);
                  $('.box-edit').toggleClass('sub-nav-active');
              });
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-18
        • 2012-07-10
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多