0

ディレクトリ構造を示すために順序付けられていないリストを使用したhtmlコードがあります。li タグをクリックすると、js 関数 (changecss() など) を呼び出します。ここで、子 lis の表示をブロックして、子 lis をクリックすると表示されます。子 li をクリックすると、同じ関数 changecss() も呼び出されます。それらにはonclickイベントが添付されていませんが、それらのliをクリックしている間に関数を呼び出します。

コードは次のとおりです。

    クラス1科目1
  • エクストラクラス 2
  • エクストラクラス 3

        </li>
        <li>Subject 2</li>
        <li>Subject 3</li>
    </ul>

</li>
<li id="second"  onclick="showSubList(this)">Class 2
<ul style="display:none" >
        <li >subject1
            <ul >
                <li> extra class 2</li>
            <li>extra class 3</li>
            </ul>

        </li>
        <li>Subject 2</li>
        <li>Subject 3</li>
    </ul>


</li>
<li>Class 3</li>
<li>Class 4</li>

このための JavaScript は次のとおりです。 function showSubList(e) { alert(e.id);

      if(e.getElementsByTagName("ul")[0].style.display == "none")
      {
         e.getElementsByTagName("ul")[0].style.display="block";
          }
      else if(e.getElementsByTagName("ul")[0].style.display == "block")
      {
          e.getElementsByTagName("ul")[0].style.display="none";
          }
   };

ここでも確認できます: http://jsfiddle.net/TTYMm/

そのような行動について何か考えはありますか?

ありがとう。

ここに可能な修正があります: http://jsfiddle.net/TTYMm/1/

みんなありがとう

4

2 に答える 2

1

いいえ、ids は継承されません。

ただし、リスト項目はリストに含まれています。イベントがキャプチャされず、リスト アイテムによって伝播が妨げられない場合、イベントはリストにバブルスルーされ、次にリストの親にバブル スルーされます。

于 2013-04-24T12:43:40.307 に答える