2013-07-23 7 views
15

iCheckを使用して「すべて選択」を実装します。機能「すべて選択」とiCheck

これは私がこれまで何をやったかである:とき "ボックス2をチェックしてください"、 "ボックス1を確認してください"、 "ボックス3を確認してください" という私が欲しいjsfiddle.net/N7uYR/1/

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

フィドルを「チェックボックス4」が選択され、「すべて選択」も選択される。まさにこのような

jsfiddle.net/ivanionut/N7uYR/

私はこれをどのように行うことができますか?

+0

既に実装されているようです。あなたが入れたいサンプルコードとは何か違いはありますか? – MathSquared

+0

@ MathSquared11235私はこのようにしたい:http://jsfiddle.net/ivanionut/N7uYR/ 慎重に見てください。 "チェックボックス1" 2、3を選択すると、 "チェックボックス4"も自動的に "すべて選択"を選択します – Ivan

+0

「これと全く同じです」にあるコードが問題を解決するようです。なぜあなたはそのコードを使用できませんか? – MathSquared

答えて

34

これは私が思いついたものです。この問題全体の場合の他の誰つまずくで

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

jsFiddle

+0

Ok 、 ありがとうございました!私が欲しかったものです。 – Ivan

0

あなたは親のチェックボックスを使ってそれを行うことができます。例えば

<div class='allchecked'> 
<input type="checkbox"/> 
<input type="checkbox"/> 

およびattRを設定します( "チェックする")かないようにjqueryのを使用。

+0

'.attr()'は使用しません。 '' .prop() '](http://api.jquery.com/prop/):' .prop( "checked") ' – Dom

7

、私はDzulqarnainナシルビットから)受け入れ答えhttps://stackoverflow.com/a/17821003/3061836を変更しました:私はここで解決策を見つけました。

は私がprop方法にremoveProp方法を変更しました:

checkAll.removeProp('checked'); 

removeProp方法が私のために動作しませんでした

checkAll.prop('checked', false); 

に変更されていますが、falseにcheckedプロパティを設定します働いた。

私は、jQuery 2.1.4でiCheck 1.0.2を使用しています。

関連する問題