0

要素のリストを指定して、それぞれを 2 つの状態 (0 と 1) の間で切り替えたいと考えています。0 をクリックすると 1 に変わり、その逆も同様です。

さらに、場合によっては残りの要素を 0 または 1 にリセットしたいと考えています。

これが私が試していることです:

HTML:

 <html>
        <ul>
            <li id="A1">Im a 0</li>
            <li id="A2">Im a 0</li>
            <li id="A3">Im a 0</li>
            <li id="A4">Im a 0</li>
            <li id="A5">Im a 0</li>

            <li id="B1">Im a 1</li>
            <li id="B2">Im a 1</li>
            <li id="B3">Im a 1</li>
            <li id="B4">Im a 1</li>
            <li id="B5">Im a 1</li>
        </ul>
    </html>

脚本 :

$("[id^=B]").hide();


$("[id^=A]").click(function(){ 

      var switcha;

      switcha=$(this).attr("id").substr(1);
      alert(switcha);
      $(this).fadeOut(100);
      $("#B"+switcha).delay(100).fadeIn(100);

});

$("[id^=B]").click(function(){ 

      var switchb;

      switchb=$(this).attr("id").substr(1);
      $(this).fadeOut(100);
      $("#A"+switchb).delay(100).fadeIn(100);

});

</script>

これは要素ごとに機能します (クリックすると 0 または 1 になります) が、残りの ID をリセットする方法がわからないため、個々の ID を前回クリックすると 0 または 1 になります。

乱雑で申し訳ありません。誰でも私を助けることができますか?

4

2 に答える 2

0

あなたが達成したいことは非常に不明です..これが必要な場合:

http://jsfiddle.net/vuPkC/

またはこれが欲しい:

http://jsfiddle.net/kGeJ7/

それ以外の場合は、2 番目のフィドルで次のコードを置き換えることができます

$("[id^=B]").click(function(){ 

      var switchb;

    $(".B").hide();  
    $(".A").show();
      switchb=$(this).attr("id").substr(1);
      $(this).fadeOut(100);
      $("#A"+switchb).delay(100).fadeIn(100);

});
于 2013-08-24T13:14:51.593 に答える
0

あなたはコードの書き方を知っているように見えるので、コードについてはコメントしません。

しかし、通常、ロジックは次のようになります。

  1. すべての状態をリセット
  2. 現在の状態を切り替える

したがって、最初にすべての要素に対してリセットを実行し、次に必要な要素の状態を切り替えた後に実行します。

それがあなたが達成しようとしていることだと思いますか?

于 2013-08-24T11:44:35.563 に答える