2010-11-25 7 views
2

jQueryを使って次のことを行うことを試みています。jQueryを使用したHTMLチェックボックスのループ

クリックすると、段落で、チェックボックが選択(チェック)されているかどうかをチェックし、x時間分待ってから次のチェックボックスを選択するなどとします。

私が得た最も近い(あまりない、申し訳ありません)you can see it here

この例では、チェックごとに1回クリックする必要があります。これは必要ありません。

あなたは <p>にそれをクリックしたときに、私がいることを必要とする

  • チェックし、
  • 変更、
  • チェックし、
  • 変更(など)

それがある場合これをループすることは可能です。

おかげさまで、私はそれが十分であることを願っています。

EDIT:@Jamesは私が欲しいものを基本的に言ったようにしたいです チェックボックスを通じて継続的にループ

には をチェックし、オフにされ、それらが

+0

あなたは自動的に、タイマーで、またはそれをどのように持っていますか? – Orbling

+0

いいえ、それはクリックによって引き起こされるはずですが、新しい「チェックボックスがオンになっているかどうかチェックする」の間のタイマーは、これは明確ですか?質問のおかげで。 – Trufa

答えて

2

あなたはこのような何かを意味していますか?

$('p').click(function() { 
    $(':checkbox').each(function(i) { 
     var current = $(this); 
     setTimeout(function() { current.attr('checked', !current.attr('checked'))}, i*500); 
    }); 
}); 

はここjsFiddleを更新:http://www.jsfiddle.net/jXHTJ/2/

UPDATEを:チェックボックスを順番に/未チェックチェックされるように(コメントで要求されるように)すべてのクリックで順序を変更するには、{1,2,3}私はすぐに私ことを実行して匿名関数内のコードをカプセル化してい

(function() { 
    var startWith = 0; 
    $('p').click(function() { 
     var checkboxes = $(':checkbox'); 
     var numCheckboxes = checkboxes.length; 
     checkboxes.each(function(i) { 
      var current = $(this); 
      var delay = (i + startWith) % numCheckboxes; 
      setTimeout(function() { current.attr('checked', !current.attr('checked'))}, delay*500); 
     }); 
     startWith = ++startWith % numCheckboxes; 
    }); 
})(); 

注:その後、{2,3,1}、次に{3,1,2}は、次のコードを使用することができますグローバル名前空間をstartWith変数で汚染しないでください。更新されたjsFiddleはここにあります:http://www.jsfiddle.net/jXHTJ/3/

+0

それはかなりよく見える!!私は私の実際のコードにそれを適応させることができるかどうかを見て、非常にありがとう! – Trufa

+0

@James大変ありがとうございますが、1、2、3、1、2、3などのようにループする方法がありますか?私はこれを回避することはできません、ありがとう! – Trufa

+0

Jamesさん、本当にありがとう、私はもうあなたを気にしたくありません。あなたはそれ以上十分に私を導いてくれました。しかし、私が実際に執筆したものは、パラグラフなクリック可能なものでした。クリックすると、最初に選択を解除し、2番目を選択し、2番目の選択を解除し、3番目を選択し、3番目の選択を解除して、最初に選択して、サイクルが再び開始されます... – Trufa

関連する問題