2015-12-02 64 views
0

我有一個divs列表,點擊展開它們下面的div。這工作得很好。 現在我想添加一個複選框到可點擊的div中,但是每次點擊該複選框時,它都會觸發放置div的功能,這會使div在檢查框的同時展開,反之亦然。 我想檢查並取消選中該框,而不觸發它後面的div。 Expandable divs防止div內的複選框觸發div函數

+0

嘗試在點擊的處理程序添加e.preventDefault()在複選框中? – Noctisdark

+1

請發佈代碼,而不是圖片。我們不能以這種方式幫助你。 – Franco

回答

0

您需要在複選框的點擊回調中添加event.stopPropagation()。這將防止點擊事件冒泡到div

一個例子:

$('input:checkbox').on("click", function(event) { 
    // Do something here 
    event.stopPropagation(); 
}); 
+0

工程,它非常簡單,即時通訊仍然學習對不起打擾ty – scriptK

+0

沒問題scriptK!很高興它對你有效! –

0

這是怎麼樣的一個哈克的方式做到這一點,但它可能工作:

<script> 

    var prevent_div_click = false; 

    $(function(){ 

     $('#div-id').on('mouseenter', '#checkbox-id', function(){ 
      prevent_div_click = true; 
     }); 

     $('#div-id').on('mouseleave', '#checkbox-id', function(){ 
      prevent_div_click = false; 
     }); 

     $('#div-id').click(function(){ 
      if(!prevent_div_click){ 
       // do your stuff 
      } 
     }); 

    }); 

</script>