0

以下のコードは一度に 2 つのドロップアウト メニューを開きます。解決策とその理由を教えてください。

JSFiddle リンク: http://jsfiddle.net/jsTDz/

ここにコピーして貼り付けた同じコード:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">    
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
    <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js"></script>
  </head>
  <body>
  <div class="btn-group" style="margin:100px;">  
    <a class="btn" href="#">One</span></a>
   <a id="drop1" class="btn dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>  
   <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
      <li><a tabindex="-1" href="#">Action</a></li>
      <li><a tabindex="-1" href="#">Another action</a></li>
      <li><a tabindex="-1" href="#">Something else here</a></li>
      <li class="dropdown-submenu">
        <a tabindex="-1" href="#">More options</a>
        <ul class="dropdown-menu ">
          <li><a tabindex="-1" href="#">Action</a></li>
          <li><a tabindex="-1" href="#">Another action</a></li>
          <li><a tabindex="-1" href="#">Something else here</a></li>
        </ul>
      </li>
    </ul>    
  <a class="btn" href="#">ClickMe</span></a>
    <a id="drop2" class="btn dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
      <li><a tabindex="-1" href="#">One</a></li>
      <li><a tabindex="-1" href="#">Two</a></li>
      <li><a tabindex="-1" href="#">Three</a></li>
    </ul>  
  </div>
  </body>
</html>​
4

1 に答える 1

2

両方のメニューが同時にドロップされる理由は、両方の UL が 1 つの「btn-group」DIV にあるためです。ブートストラップ CSS および JS は、「btn-group」クラスを使用して、その下の UL をターゲットにします。2つあるので、両方とも発火します。

これを解決するには、クラス「btn-group」の DIV で 2 番目の UL をラップします。このようにして、リストの両方のセットは互いに独立したままになります。

最終的に、コードは次のようになります。

<div class="btn-group" style="margin:100px;">  
<a class="btn" href="#">One</span></a>
<a id="drop1" class="btn dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>  
<ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
  <li><a tabindex="-1" href="#">Action</a></li>
  <li><a tabindex="-1" href="#">Another action</a></li>
  <li><a tabindex="-1" href="#">Something else here</a></li>
  <li class="dropdown-submenu">
    <a tabindex="-1" href="#">More options</a>
    <ul class="dropdown-menu ">
      <li><a tabindex="-1" href="#">Action</a></li>
      <li><a tabindex="-1" href="#">Another action</a></li>
      <li><a tabindex="-1" href="#">Something else here</a></li>
    </ul>
  </li>
</ul>  
</div>
<div class="btn-group">  
<a class="btn" href="#">ClickMe</span></a>
<a id="drop2" class="btn dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
  <li><a tabindex="-1" href="#">One</a></li>
  <li><a tabindex="-1" href="#">Two</a></li>
  <li><a tabindex="-1" href="#">Three</a></li>
</ul>  
</div>
于 2012-12-12T17:33:56.463 に答える