2010-11-25 289 views
0

在點擊功能中添加點擊功能時出現問題。我也嘗試mousedown(),但同樣的問題。當執行或其他並單擊按鈕。點擊功能運行兩次。jquery點擊功能衝突

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

回答

0

你需要告訴它,停止辦理冒泡click事件,通過使用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'); 
     }); 
    } 
}); 
0

也許你應該把if語句放到你的「click」函數中,並在那裏測試按鈕是否被選中。這樣你就不需要解除綁定/重新綁定函數。