jquery单击函数冲突

jquery单击函数冲突,jquery,Jquery,我在将click函数放入click函数时遇到问题。我还尝试了mousedown(),但遇到了相同的问题。当执行else时,单击按钮。单击功能运行了两次 $('.tableData').click(function(){ if($('tr.trSelected').length > 1) { $('.box-edit').addClass('btn-disabled'); $('.box-info').addClass('btn-disabled');

我在将click函数放入click函数时遇到问题。我还尝试了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('click'); } else { $('.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'); }); } }); $('.tableData')。单击(函数(){ 如果($('tr.trSelected')。长度>1){ $('.box edit').addClass('btn-disabled'); $('.box info').addClass('btn-disabled'); $('.nav edit')。取消绑定('click'); $('.nav info')。取消绑定('click'); } 否则{ $('.box edit').removeClass('btn-disabled'); $('.box info').removeClass('btn-disabled'); $('.nav edit').bind('click',function(){ $('sub-nav edit')。滑动切换(200); $('.box edit').toggleClass('sub-nav-active'); }); } });
您需要告诉它,要停止处理冒泡的click事件,请使用
stopImmediatePropagation
(我添加了
e
)的事件参数)


也许您应该将if语句放入“click”函数中,并在那里测试按钮当前是否处于选中状态。这样就不需要解除绑定/重新绑定函数

$('.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');
        });
    }
});