2017-08-19 10 views
0

ダイナミックリストのチェックボックスを再度アクティブにしようとしていますが、成功しません。リストの内容はx回ごとに更新されます。ダイナミックリストのチェックボックスを再度有効にするjquery

<div class="content"> 
    <ul class="mylist"> 
     <li><input type="checkbox" class="check" checked>0</li> 
     <li><input type="checkbox" class="check">1</li> 
     <li><input type="checkbox" class="check">2</li> 
     <li><input type="checkbox" class="check">3</li> 
     <li><input type="checkbox" class="check">4</li> 
     <li><input type="checkbox" class="check">5</li> 
     <li><input type="checkbox" class="check">6</li> 
     <li><input type="checkbox" class="check">7</li> 
    </ul> 
</div> 
// checkbox 
var checkbox; 
var list = [2,3,4,5,6,7,8,9]; 
// 
setInterval(function(){ 
    $('.mylist li').remove(); 
    for(i in list) { 
     $('.mylist').append('<li><input type="checkbox" class="check">' + i + '</li>'); 
    } 
    if(typeof checkbox === 'object') 
     checkbox.prop('checked', true); 
}, 3000); 

$('.check').on('click', function(){ 
    if ($(this).is(":checked")) { 
    checkbox = $(this); 
} 
}); 

https://jsfiddle.net/ywkr5ezp/3/

+0

問題を説明できますか? – Dekel

+0

問題のあなたの説明は非常に曖昧であり、あなたのコードは...奇妙です。あなたは何を達成しようとしていますか?ちょうど推測:一度に1つのチェックボックスしか選択できないようにしようとしていますか?その場合は、チェックボックスを使用せず、ラジオボタンを使用してください。 https://jsfiddle.net/z1gbyj34/ – blex

+0

あまりにも明示的ではないことを申し訳ありません。 リストはx回ごとにリロードされ、ユーザーはチェックボックスをクリックしてリストから項目を選択します。 ご覧のとおり、リストが更新されています。 アイデアは、選択したチェックボックスを保存し、リストが再作成されたときにそれを再確認することです。 誰かが、変数に保存されている要素が再作成された要素と同じではないため、これが発生すると説明しました。 明らかに私はそれをいくつかの属性で参照する必要があります。 – covi2

答えて

0

checkboxに格納された入力要素を作成している新しい入力要素と同じではありませんので、これが起こっている理由があります。変数に要素を格納すると、その要素の特定のインスタンスが格納されます。

これを回避する方法の1つは、参照して再チェックできるチェックボックスのIDを与えることです。

関連する問題