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/

否则,您可以在第二个小提琴中替换以下代码

$("[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 回答