web-dev-qa-db-ja.com

Bootstrapドロップダウンが機能しない

bootstrapドロップダウンを機能させることができません。これがnavの私のhtmlです:

<ul class='nav'>
  <li class='active'>Home</li>
  <li class='dropdown'>
    <a class="dropdown-toggle" data-toggle="dropdown" href='#'>Personal asset loans</a>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">asds</a></li>
      <li class="divider"></li>
    </ul>
  </li>
  <li>Payday loans</li>
  <li>About</li>
  <li>Contact</li>
</ul>

スクリプトは次のとおりです。

<script type="text/javascript" src="js/bootstrap/bootstrap-dropdown.js"></script>
<script>
     $(document).ready(function(){
        $('.dropdown-toggle').dropdown()
    });
</script>

何が間違っていますか?ご回答ありがとうございます!

62
hjuster

作業デモ: http://codebins.com/bin/4ldqp7

これを試して

<ul class='nav'>
  <li class='active'>Home</li>
  <li>
    <div class="dropdown">
      <a class="dropdown-toggle" data-toggle="dropdown" href="#">Personal asset loans</a>
      <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">            
        <li><a href="#">asds</a></li>
        <li class="divider"></li>
      </ul>
    </div>   
    </li>
    <li>Payday loans</li>
  <li>About</li>
  <li>Contact</li>
</ul>
11
gaurang171

同じ問題がありました。数時間のトラブルシューティングの結果、

持っていた

<script type="text/javascript" src="Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>

の代わりに、

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="Scripts/bootstrap.min.js"></script>

これが誰かを助けることを願って

128
Prince Ashitaka

bootstrap.min.jsを2回インクルードしたときに同じ問題が発生しました。それらの1つを削除し、動作を開始しました。

71
kubilay

参考:bootstrap.jsがある場合は、not bootstrap-dropdown.jsを追加する必要があります。

Bootstrap.min.jsの結果はわかりません。

23
Fahrenheit

スタイルには、ブートストラップのcssファイルを含める必要があります。通常は</head>要素の直前です。

<link href="css/bootstrap.css" rel="stylesheet">    

次に、jsファイルを含める必要があります。ページの読み込みを高速化するために、通常は</body>の前にドキュメントの最後に含めることをお勧めします。

<script src="js/jquery.js"></script>        
<script src="js/bootstrap.js"></script>
13

Bodyタグ内に次の行を追加します。

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <script src="https://code.jquery.com/jquery.js"></script>
  <!-- Include all compiled plugins (below), or include individual files 
        as needed -->
  <script src="js/bootstrap.min.js"></script>
7
Shevon Silva

このファイルをHTMLの<head></head>にインポートする必要があります。

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
6
Martin

jquery.jsを含めましたか?

また、次のコード行をあなたのものと比較してください:

<a class="dropdown-toggle" data-toggle="dropdown" href="#">Personal asset loans<b class="caret"></b></a>

正常に動作するこのバージョンを参照してください。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Bootstrap dropdown</title>
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />

</head>
<body>
    <div class="navbar">
        <div class="navbar-inner">
            <div class="container">
                <ul class="nav">
                    <a class="brand" href="#">w3resource</a>
                    <li class="active"><a href="#">Home</a></li>
                    <li><a href="#">Blog</a></li>
                    <li><a href="#">About</a></li>
                    <li><a href="#">Contact</a></li>
                    <li class="dropdown" id="accountmenu">
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">PHP</a></li>
                            <li><a href="#">MySQL</a></li>
                            <li class="divider"></li>
                            <li><a href="#">JavaScript</a></li>
                            <li><a href="#">HTML5</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container-fluid">
     <h1>Dropdown Example</h1>
    </div>
    <script type="text/javascript" src="js/jquery-latest.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.dropdown-toggle').dropdown();
        });
   </script>
</body>
</html>
5
Frankline

bootstrapとjqueryの両方を含める必要があります。

<link type="text/css" href="/{ProjectName}/css/ui-lightness/jquery-ui-1.8.18.custom.css" rel="stylesheet" />
<script type="text/javascript" src="/{ProjectName}/js/jquery-x.x.x.custom.min.js"></script>

<link type="text/css" href="/{ProjectName}/css/bootstrap.css" rel="stylesheet" />
<script type="text/javascript" src="/{ProjectName}/js/bootstrap.js"></script>

注:jquery-x.x.x.min.jsバージョンバージョン2.x.xでなければなりません !!!

4
NotAMonkey24

私はそれを考え出し、これを行う最も簡単な方法は、 https://www.bootstrapcdn.com/ にあるbootstrapリンクのCDNを単にコピーして過去に渡すことではありませんここにあるJquery CDNスクリプト https://code.jquery.com/ およびリンクをコピーした後、bootstrapリンクがHTMLの先頭に貼り付けられ、 JQueryスクリプトは、次の例のようにHTMLの本文に貼り付けます。

    <!DOCTYPE html>
    <html>
      <head>

        <title>Purrfect Match Landing Page</title>
        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <!--<link rel="stylesheet" href="griddemo.css">

        <!-- Optional theme -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

      </head>

      <body>

        <!-- Latest compiled and minified JavaScript -->
        <script src="https://code.jquery.com/jquery-3.1.1.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">      </script>    
      </body>
    </html>

私にとっては、あなたにとってもうまくいくことを願っています:)

3
Atdhe Kurteshi

ここで私がやったことは...

プロジェクトからbootstrap.min.jsを削除し、bootstrap.jsを追加するだけで動作し始めました........

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js"
                  //"~/Scripts/bootstrap.min.js"));
2
Mohit Dhawan

ヘッドセクションでこれを試してください

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
2
Hamza Javed

bootstrapスクリプトtwiceを追加し、2番目のbootstrapスクリプトがaboveの後にあることを確認するためだけに、同様の問題がありました。 jqueryスクリプト。

溶液:

  • Bootstrap.min.jsとjquery.min.jsがファイルに1回だけ含まれていることを確認してください。
  • Bootstrap.min.jsスクリプトは、jquery.min.jsの後に含める必要があります
1
B.K

競合するcssファイル/プロパティを確認する必要があります。たとえば、「。nav」カスタムスタイルコンテンツを他の場所で使用して、独自のcssファイルを無効にし、それが機能するかどうかを確認し、競合するファイルまたはカスタムスタイルを確認してくださいコードにbootstrap.min.jsを含めています

1
Mancy

bootstrapサイトからのCSSリンクに続いてCSSリンクをコピーして貼り付けます here 。その後、ドロップダウンが機能するはずです。

私のページは次のようになります。

<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

    <title>Website Title</title>
  </head>
  <body>
    <div id="content" />
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <a class="navbar-brand" href="#">Navbar</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Link</a>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </li>
          <li class="nav-item">
            <a class="nav-link disabled" href="#">Disabled</a>
          </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
          <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
          <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
      </div>
    </nav>
  </body>
</html>

(Navbar from here

0
Pro Q

私がここに連れてきたのと同じ問題があった。

私の問題:jquery 1.12.0バージョンをjqueryスクリプトファイルとして使用していました。

解決策:jqueryスクリプトをjquery 2.2.0バージョンに置き換えました。

それで解決しました。

0
Everest Nwosu

私にとっては、CORSの問題でした。タグをインポートするスクリプトからcrossorigin="anonymous"を削除すると、再び機能し始めました。

ところで、最新のスクリプトタグは、正しい順序で、常にここにあります: https://getbootstrap.com/

編集:どうやらdeferscriptタグに追加すると、すべてのBootstrapの利点も失われます。

0
Cameron Hudson