Menu thả xuống Bootstrap không hoạt động


100

Tôi đang gặp khó khăn khi làm việc. Tôi có thể làm cho thanh điều hướng hiển thị hoàn hảo, nhưng khi tôi nhấp vào "Dropdown" (một trong hai thứ đó), nó không hiển thị menu thả xuống. Tôi đã thử xem các bài đăng khác về điều này, nhưng không có gì khắc phục được sự cố của mọi người. Tôi đã sao chép nguồn trực tiếp từ trang web của bootstrap, nhưng dường như tôi không thể làm cho nó hoạt động trên máy của mình. Ai có ý tưởng gì không? Tôi đã nhìn chằm chằm vào nó trong một giờ và dường như không thể tìm ra vấn đề là gì.

<head>
<script src="resource/js/jquery-1.11.0.js"></script>
<script src="resources/js/bootstrap.js"></script>

<script type="text/javascript">
$(document).ready(function() {
    $('dropdown-toggle').dropdown()
});
</script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-    target="#bs-example-navbar-collapse-1">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
  <a class="navbar-brand" href="#">Brand</a>
</div>

<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav">
    <li class="active"><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
  </ul>
  <form class="navbar-form navbar-left" >
    <div class="form-group">
      <input type="text" class="form-control" placeholder="Search">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
  <ul class="nav navbar-nav navbar-right">
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </li>
  </ul>
</div><!-- /.navbar-collapse -->


1
Xin lỗi, tại nơi làm việc khi tôi viết điều này. Tôi đã sửa lời giải thích.
user2540528

Bạn có thể cung cấp cho chúng tôi liên kết? @ user2540528
STP38

Liên kết đến tệp JS?
user2540528

1
Tôi vừa sao chép mã của bạn và thêm js / css và nó hoạt động trên máy của tôi
Chris

'Tôi đã sao chép nguồn trực tiếp từ trang web của bootstrap' @ user2540528, Bạn có thể cho tôi liên kết đó được không?
STP38

Câu trả lời:


142

Có thể thử với

<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">

và xem nó có hoạt động không.


Điều này đã làm được. Bất kỳ lý do nào tại sao các tệp cục bộ không hoạt động? Và những nguồn js này nếu tôi triển khai điều này trên một miền có đúng không? Chỉ muốn đảm bảo rằng ứng dụng của tôi vẫn hoạt động sau khi tôi hoàn thành và xuất bản nó. (Đó là một đầu tiên của tôi, do đó, thats lý do tại sao tôi yêu cầu)
user2540528

@ user2540528 Có thể khi đó tệp được đặt tên khác jquery-1.11.0.jshoặc hoàn toàn không có.
Chris

user2540528 Có vẻ như bạn đã bỏ lỡ bootstrap.css
Avec

1
Vấn đề của tôi là tôi đã có bootstrap.css ở đúng nơi nhưng không có các bootstrap.min.js được đưa vào nhóm của tôi
codingNightmares

Tôi nhận ra rằng thứ tự của các dòng mã đó cũng rất quan trọng. Nếu bạn đặt google apis là dòng mã cuối cùng, thì nó không hoạt động.
Efe Büyük

114

Tôi đã có một dự án bootstrap + rails và trình đơn thả xuống hoạt động tốt. Chúng ngừng hoạt động sau khi cập nhật ...

Đây là giải pháp đã khắc phục sự cố, hãy thêm phần sau vào tệp .js:

$(document).ready(function() {
    $(".dropdown-toggle").dropdown();
});

Đã khắc phục sự cố mà tôi gặp phải với Bootstrap 3 và Rails 4.2 trong đó trình đơn thả xuống sẽ chỉ hoạt động trong lần đầu tiên, nhưng không hoạt động khi nhấp chuột thứ hai.
bodow

Dự án Grails w / Spud CMS - Điều này đã giải quyết vấn đề chuyển đổi thả xuống của tôi.
Tyler Rafferty

cảm ơn bạn rất nhiều vì điều này 1. mọi người đều nói "thêm jquery trước bootstrap". nhưng nó đã được như vậy. Đây là câu trả lời duy nhất của họ, sau hơn một giờ tìm kiếm, điều đó đã hoạt động!
MaNTiS

1
Điều này đã giúp tôi rất nhiều. Bất kỳ ý tưởng tại sao sửa chữa này là cần thiết?
Brack

1
Giải pháp này đã làm việc cho tôi. Hóa ra là tôi đã nhập bootstrap trên trang web của mình hai lần, sau khi tôi chỉ nhập một lần, nó bắt đầu hoạt động mà không có bản sửa lỗi trong giải pháp này.
harshpatel991

27

100% giải pháp làm việc

chỉ cần đặt liên kết Jquery của bạn trước tất cả các liên kết js và css

Ví dụ đúng

<script src="jquery/jquery.js"></script>
<script type="text/javascript" src='js/bootstrap.min.js'></script>
<link rel="stylesheet" href="css/bootstrap.css" />

Ví dụ Sai!

<script type="text/javascript" src='js/bootstrap.min.js'></script>
<link rel="stylesheet" href="css/bootstrap.css" />
<script src="jquery/jquery.js"></script>

Không hoạt động trong trường hợp của tôi. Phải sử dụng giải pháp của Iwan B.
toddmo

1
@Nabin Nó hoạt động bởi vì, chúng ta phải jquery tải đầu tiên và sau đó bootstrap, kể từ khi sử dụng bootstrap jquery
Siddaram H

@toddmo Nó hoạt động, chỉ cần kiểm tra jquery, bootstrap và css được tải đúng hay không từ tab networy trong google crome dbugger
LMK

12

Đặt liên kết jquery js trước liên kết js bootstrap như sau:

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

thay vì:

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

Put the jquery css ...>Put the jquery js ...
allcaps

2
Lời nói của bạn đúng nhưng khối mã ngược lại với những gì bạn nói.
Astra Bear

4

Theo getBootstrap.com, trình đơn thả xuống được xây dựng trên thư viện bên thứ ba Popper.js. Vì vậy, nếu menu thả xuống không hoạt động khi nhấp vào mà chỉ hoạt động khi di chuột của menu thả xuống, hãy bao gồm popper.js, bootstrap.js và bootstrap.css. Không bao gồm popper.js trước khi bao gồm các gói bootstrap có thể là một trong những lý do.

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"></link>

https://getbootstrap.com/docs/4.0/components/dropdowns/


1
Đối với phiên bản 4, đây là câu trả lời, đây là một sự thay đổi lớn khi chúng ta thường chỉ bao gồm Jquery và bootstrap trong các dự án của mình.
Vindic

1
Vâng, thứ tự thực sự quan trọng.
nikhilmeth

Đây là một trong những làm việc cho tôi. Đã sao chép các mã giống nhau từ trang Bootstrap, nhưng đây là thứ tự phù hợp mà chúng phải có.
DuckRodgers

3

Tôi đã đối mặt với điều này khi tôi đang sử dụng ASP .NET Forms. Giải pháp tôi đã sử dụng là xóa hoặc nhận xét các tham chiếu jQuery và Bootstrap khỏi <asp:ScriptManager runat="server">trang chủ. Có vẻ như nó tạo ra xung đột với các tham chiếu jQuery và Bootstrap mà bạn đưa vào <header>.


2

Trong trường hợp bất kỳ ai vẫn gặp phải vấn đề tương tự, hãy nhớ kiểm tra chế độ xem của bạn Nguồn trang trong trình duyệt của bạn để kiểm tra xem tất cả các tệp jquery và bootstrap đã được tải chưa và các đường dẫn đến tệp có đúng không. Quan trọng nhất! đảm bảo sử dụng tệp jquery ổn định mới nhất.


2

Có thể ai đó ngoài kia có thể hưởng lợi từ điều này:

Tóm tắt (hay còn gọi là tl; dr)

Trình đơn thả xuống Bootstrap đã ngừng thả xuống do nâng cấp từ django-bootstrap3phiên bản 6.2.2lên 11.0.0.

Lý lịch

Chúng tôi đã gặp phải sự cố tương tự trong một djangotrang web kế thừa chủ yếu dựa vào bootstrapthông qua django-bootstrap3. Trang web luôn hoạt động tốt và tiếp tục hoạt động như vậy trong quá trình sản xuất, nhưng không phải trên hệ thống thử nghiệm địa phương của chúng tôi. Không có thay đổi liên quan rõ ràng nào trong mã, vì vậy rất có thể xảy ra sự cố phụ thuộc.

Các triệu chứng

Khi truy cập trang web trên máy chủ thử nghiệm django cục bộ , thoạt nhìn có vẻ hoàn toàn ổn: kiểu / bố cục sử dụng bootstrapnhư mong đợi, bao gồm cả thanh điều hướng. Tuy nhiên, tất cả các menu thả xuống không thể thả xuống.

Không có lỗi trong bảng điều khiển trình duyệt. Tất cả tệp tĩnh jscsstệp đã được tải thành công và chức năng từ các gói khác dựa vào jqueryđã hoạt động như mong đợi.

Giải pháp

Hóa ra là django-bootstrap3gói trong môi trường python cục bộ của chúng tôi đã được nâng cấp lên phiên bản mới nhất 11.0.0, trong khi trang web được xây dựng bằng cách sử dụng 6.2.2.

Quay lại để django-bootstrap3==6.2.2giải quyết vấn đề cho chúng tôi, mặc dù tôi không biết chính xác điều gì đã gây ra nó.


1

Tôi đang sử dụng rails 4.0 và gặp phải vấn đề tương tự

Đây là giải pháp của tôi đã vượt qua thử nghiệm

thêm vào Gemfile

gem 'bootstrap-sass'

chạy

bundle install

sau đó thêm vào app / asset / javascripts / application.js

//= require bootstrap

Sau đó, menu thả xuống sẽ hoạt động

Nhân tiện, giải pháp của Chris cũng hiệu quả với tôi.

Nhưng tôi nghĩ rằng nó không phù hợp với ý tưởng đường ống nội dung


0

Có vẻ như còn nhiều việc phải làm cho Rails 4.

  1. Bên trong bạn thêm Gemfile.

    gem 'bootstrap-sass', '~> 3.2.0.2'

như đã thấy ở đây

  1. Tiếp theo bạn cần chạy

    $ gói cài đặt

Đây là phần chưa ai nhắc đến

Mở tệp config / application.rb của bạn

  1. thêm phần này ngay trước phần thứ hai đến phần cuối cùng

    config.assets.precompile + =% w (*. png * .jpg * .jpeg * .gif)

như đã thấy ở đây khoảng 20% ​​xuống trang.

  1. Tiếp theo tạo một tệp custom.css.scss trong thư mục này

    ứng dụng / nội dung / bảng định kiểu

như đã thấy ở đây xa hơn một chút từ nhiệm vụ trên

  1. Bên trong tệp đó bao gồm

    @import "bootstrap";


Bây giờ dừng máy chủ của bạn và khởi động lại và mọi thứ sẽ hoạt động tốt.

Tôi đã cố gắng chạy bootstrap mà không sử dụng đá quý nhưng nó không hoạt động với tôi.

Hy vọng rằng sẽ giúp ai đó ra ngoài!


0

Tôi nghĩ đó là vấn đề về lộ trình của tệp tuyến đường của bạn. Không phải bootstrap cũng không phải tệp JQuery.


0

Trong trường hợp của tôi, việc tắt Tiện ích mở rộng của Chrome đã khắc phục được sự cố. Tôi đã xóa chúng khỏi Chrome lần lượt cho đến khi tìm ra thủ phạm.

Vì tôi là tác giả của tiện ích mở rộng Chrome vi phạm, nên tốt hơn hết tôi nên sửa tiện ích này!


0

Phiên bản bootstrap của tôi đã trỏ đến bootstap4-alpha,

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn"
crossorigin="anonymous"></script>

đã thay đổi thành 4-beta

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"
        integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
        crossorigin="anonymous"></script>

và nó bắt đầu hoạt động


0

vấn đề là href là href = "#" bạn phải xóa href = "#" trong tất cả các thẻ


0

Đối với Bootstrap 4, bạn cần một thư viện bổ sung. Nếu bạn đọc bảng điều khiển trình duyệt của mình, Bootstrap sẽ thực sự in một thông báo lỗi cho bạn biết rằng bạn cần nó để trình đơn thả xuống hoạt động.

Error: Bootstrap dropdown require Popper.js (https://popper.js.org)

0

trong các dự án góc cạnh, chúng tôi thêm các dòng chủ đề angle-cli.json hoặc angle.json:

      "scripts": [
    "../node_modules/jquery/dist/jquery.min.js",
    "../node_modules/bootstrap/dist/js/bootstrap.min.js"

  ],

0

Tôi đã thử tất cả các câu trả lời ở trên và phiên bản duy nhất phù hợp với tôi là jquery 1.11.1 . Tôi đã thử với tất cả các phiên bản khác 1.3.2, 1.4.4, 1.8.2, 3.3.1 và thanh điều hướng thả xuống không hoạt động.

<script src="jquery/jquery-1.11.1.min.js"></script>

0

Nếu bạn gặp sự cố trong Ruby on Rails , giải pháp toàn diện được cung cấp bởi tệp readme của Bootstrap Ruby Gem .

hay nói ngắn gọn là:

  1. đổi tên application.cssthànhapplication.scss
  2. thêm vào @import "bootstrap";
  3. thêm gem 'jquery-rails'vào Gemfiletrừ khi nó tồn tại.
  4. thêm //= require jquery3 //= require popper //= require bootstrap //= require bootstrap-sprockets vào application.js.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.