2014-10-01 67 views
0

我設計我的複選框與I檢查插件,並與一個和多個複選框(查看全部)這樣的工作:jQuery的顯示隱藏的div使用I檢查插件

HTML:

<div>Using Check all function</div> 
<div id="action" class="action-class" style="display:none">SHOW ME</div> 
<div id="selectCheckBox"> 
    <input type="checkbox" class="all" />Select All 
    <input type="checkbox" class="check" />Check Box 1 
    <input type="checkbox" class="check" />Check Box 2 
    <input type="checkbox" class="check" />Check Box 3 
    <input type="checkbox" class="check" />Check Box 4 
</div> 

JS:

$(function() { 
    var checkAll = $('input.all'); 
    var checkboxes = $('input.check'); 

    $('input').iCheck(); 

    checkAll.on('ifChecked ifUnchecked', function(event) {   
     if (event.type == 'ifChecked') { 
      checkboxes.iCheck('check'); 
     } else { 
      checkboxes.iCheck('uncheck'); 
     } 
    }); 

    checkboxes.on('ifChanged', function(event){ 
     if(checkboxes.filter(':checked').length == checkboxes.length) { 
      checkAll.prop('checked', 'checked'); 
     } else { 
      checkAll.removeProp('checked'); 
     } 
     checkAll.iCheck('update'); 
    }); 
}); 

我有<div id="action" class="action-class" style="display:none">SHOW ME</div>display:none

現在,我需要顯示div如果檢查了任何複選框(全部和一個)輸入。

我該如何顯示這個!?

DEMO JSFIDDLE

回答

0

可以做這樣的事情是切換基於股利任何框是否被選中

function toggleDiv(){ 
    var showDiv=checkboxes.filter(':checked').length; 
    $('#action').toggle(showDiv); /* if boolean argument, toggle will hide/show based on boolean */ 
} 

checkboxes.on('ifChanged', function(event){ 
    if(checkboxes.filter(':checked').length == checkboxes.length) { 
     checkAll.prop('checked', 'checked'); 
    } else { 
     checkAll.removeProp('checked'); 
    } 
    checkAll.iCheck('update'); 
    toggleDiv(); 

}); 

DEMO

+1

這不行!請先點擊檢查所有你看到的'div'(true)比點擊複選框4 u隱藏'div'這不是真的,因爲我們有3個複選框(1 - 2 - 3)。 – 2014-10-01 17:10:53

0
checkboxes.on('ifChanged', function(event){ 
     if(checkboxes.filter(':checked').length == checkboxes.length) { 
      checkAll.prop('checked', 'checked'); 
     } else { 
      checkAll.removeProp('checked'); 
     } 
     checkAll.iCheck('update'); 

     //Add this ----------------------------------- 
     if(checkboxes.filter(':checked').length > 0) { 
      $("#action").show(); 
     } 
     else{ 
      $("#action").hide(); 
     } 
    }); 

演示:jsfiddle