Trình đơn thả xuống Bootstrap không hoạt động ở lần nhấp đầu tiên

Tôi đã gặp vấn đề tương tự gần đây, tôi đã giải quyết vấn đề này bằng cách viết tập lệnh tùy chỉnh

Edit

$(".filter-dropdown").on("click", ".dropdown-toggle", function(e) { e.preventDefault(); $(this).parent().addClass("show"); $(this).attr("aria-expanded", "true"); $(this).next().addClass("show"); });

Xin chào, tôi cần một mục menu tạo danh sách thả xuống với các mục phụ của nó, vì vậy tôi đặt liên kết cho mục menu này để định tuyến. và đặt các mục phụ bên dưới nó trong cấu trúc menu

Điều này có vẻ hoạt động tốt, nó tạo ra một mục menu hiển thị menu thả xuống khi di chuột, nhưng sau đó tôi nhận thấy rằng trên thiết bị di động, nó không mở danh sách thả xuống trong lần chạm/nhấp chuột đầu tiên. Sau đó, nó hoạt động tốt. Mỗi lần chạm/bấm sẽ mở/đóng nó như mong đợi, nhưng. lần đầu tiên là quan trọng nhất, tất nhiên, người dùng không nên nhấp đi nhấp lại cùng một nội dung.
Vì vậy, tôi đã tìm kiếm và phát hiện ra rằng Bootstrap được cho là có trình đơn thả xuống hoạt động khi nhấp chuột theo mặc định, nhưng của tôi là ở chế độ di chuột theo mặc định. Tôi không nghĩ rằng tôi đã chạm vào bất cứ thứ gì liên quan đến điều đó, tôi chỉ thấy mình với nó là như vậy. Và tôi không biết liệu việc chuyển sang menu thả xuống khi nhấp chuột có khắc phục được sự cố hay không.

Sau đây là mã tôi nhận được cho mục menu chính đó sau khi tải trang và chỉ cần mở menu chính

  • Services
  • Khi tôi nhấp vào nó lần đầu tiên, SPAN với lớp "dropdown-toggle" nhận được
    aria-expanded="false"
    thêm .

    Một lần nhấp khác, sẽ đặt thành
    aria-expanded="true"
    và LI với các lớp "thả xuống mở rộng" nhận được "mở .

    Các lần nhấp tiếp theo sẽ đóng và mở lại danh sách thả xuống bình thường, như tôi đã nói ở trên, thay đổi các thuộc tính đó cho phù hợp

    Trong tìm kiếm của mình, tôi cũng tìm thấy những thứ khác, chẳng hạn như ai đó nói rằng họ có bootstrap. js tải hai lần, gây ra sự cố, nhưng tôi đã xác minh và tôi chỉ có một lần

    Chuyển đổi lớp phủ theo ngữ cảnh để hiển thị danh sách liên kết và hơn thế nữa bằng plugin thả xuống Bootstrap

    Tổng quan

    Danh sách thả xuống có thể chuyển đổi, lớp phủ theo ngữ cảnh để hiển thị danh sách liên kết và hơn thế nữa. Chúng được thực hiện tương tác với plugin JavaScript thả xuống Bootstrap đi kèm. Chúng được bật bằng cách nhấp chuột, không phải bằng cách di chuột;

    Danh sách thả xuống được xây dựng trên thư viện của bên thứ ba, Popper. js, cung cấp tính năng định vị động và phát hiện khung nhìn. Hãy chắc chắn bao gồm popper. tối thiểu. js trước JavaScript của Bootstrap hoặc sử dụng

    
    

    Action

    4 /
    
    

    Action

    5 có chứa Popper. js. thuốc phiện. js không được sử dụng để định vị danh sách thả xuống trong thanh điều hướng mặc dù không yêu cầu định vị động

    Nếu bạn đang xây dựng JavaScript của chúng tôi từ nguồn, nó

    khả năng tiếp cận

    Tiêu chuẩn WAI ARIA xác định một thực tế, nhưng điều này dành riêng cho các menu giống như ứng dụng kích hoạt các hành động hoặc chức năng. Menu ARIA chỉ có thể chứa các mục menu, mục menu hộp kiểm, mục menu nút radio, nhóm nút radio và menu phụ

    Mặt khác, trình đơn thả xuống của Bootstrap được thiết kế chung chung và có thể áp dụng cho nhiều tình huống và cấu trúc đánh dấu. Chẳng hạn, có thể tạo danh sách thả xuống chứa đầu vào bổ sung và điều khiển biểu mẫu, chẳng hạn như trường tìm kiếm hoặc biểu mẫu đăng nhập. Vì lý do này, Bootstrap không mong đợi (cũng như không tự động thêm) bất kỳ thuộc tính

    
    

    Action

    8 và
    
    

    Action

    9 nào cần thiết cho các menu ARIA thực sự. Các tác giả sẽ phải tự đưa vào các thuộc tính cụ thể hơn này

    Tuy nhiên, Bootstrap có thêm hỗ trợ tích hợp cho hầu hết các tương tác menu bàn phím tiêu chuẩn, chẳng hạn như khả năng di chuyển qua các phần tử

    
    

    Action Toggle Dropdown

    0 riêng lẻ bằng các phím con trỏ và đóng menu bằng phím ESC

    ví dụ

    Bọc nút chuyển đổi của trình đơn thả xuống (nút hoặc liên kết của bạn) và trình đơn thả xuống trong

    
    

    Action Toggle Dropdown

    1 hoặc một phần tử khác khai báo
    
    

    Action Toggle Dropdown

    2. Danh sách thả xuống có thể được kích hoạt từ các yếu tố
    
    

    Action Toggle Dropdown

    3hoặc để phù hợp hơn với nhu cầu tiềm năng của bạn

    nút đơn

    Bất kỳ

    
    

    Action Toggle Dropdown

    4 đơn lẻ nào cũng có thể được chuyển thành chuyển đổi thả xuống với một số thay đổi đánh dấu. Đây là cách bạn có thể làm cho chúng hoạt động với một trong hai

    yếu tố.
  • Services
  • 1
    
    

    Action Toggle Dropdown

    5

    
    

    Action Toggle Dropdown

    6

    Và với các yếu tố

    
    

    Action Toggle Dropdown

    3

  • Services
  • 5

    Phần tốt nhất là bạn cũng có thể làm điều này với bất kỳ biến thể nút nào

    
    

    Action

    nút tách

    Tương tự, tạo danh sách thả xuống của nút tách với cách đánh dấu gần giống như danh sách thả xuống của nút đơn, nhưng có thêm

    
    

    Action Toggle Dropdown

    8 để tạo khoảng cách thích hợp xung quanh dấu mũ thả xuống

    Chúng tôi sử dụng lớp bổ sung này để giảm 25%

    
    

    Action Toggle Dropdown

    9 ngang ở hai bên của dấu mũ và loại bỏ
  • Services
  • 90 được thêm vào cho các nút thả xuống thông thường. Những thay đổi bổ sung đó giữ cho dấu nháy ở giữa nút tách và cung cấp vùng nhấn có kích thước phù hợp hơn bên cạnh nút chính

    
    

    Action Toggle Dropdown

    định cỡ

    Menu thả xuống nút hoạt động với các nút ở mọi kích cỡ, bao gồm các nút thả xuống mặc định và chia nhỏ

    Nút tách lớn Toggle Dropdown

    Nút tách nhỏ Toggle Dropdown

  • Services
  • 9

    Hướng

    dropup

    Kích hoạt menu thả xuống phía trên các phần tử bằng cách thêm

  • Services
  • 91 vào phần tử gốc

    Tách dropup Chuyển đổi thả xuống

    
    

    Action

    3

    Thả ngay

    Kích hoạt menu thả xuống ở bên phải của các phần tử bằng cách thêm

  • Services
  • 92 vào phần tử chính

    Tách dropright Chuyển đổi Dropright

    
    

    Action

    5

    thả trái

    Kích hoạt menu thả xuống ở bên trái của các phần tử bằng cách thêm

  • Services
  • 93 vào phần tử chính

    
    

    Action

    7

    Trước đây, nội dung menu thả xuống phải là liên kết, nhưng điều đó không còn xảy ra với v4. Giờ đây, bạn có thể tùy ý sử dụng các phần tử trong danh sách thả xuống của mình thay vì chỉ

    
    

    Action Toggle Dropdown

    3s.
  • Services
  • 1____195

  • Services
  • 96

    Bạn cũng có thể tạo các mục thả xuống không tương tác với

  • Services
  • 97. Thoải mái tạo kiểu hơn nữa với các tiện ích văn bản hoặc CSS tùy chỉnh

    
    

    Action

    3

    Tích cực

    Thêm

  • Services
  • 98 vào các mục trong danh sách thả xuống để định kiểu chúng là hoạt động

  • Services
  • 50

    Vô hiệu hóa

    Thêm

  • Services
  • 99 vào các mục trong danh sách thả xuống để định kiểu chúng là bị vô hiệu hóa

  • Services
  • 51

    Theo mặc định, menu thả xuống được tự động định vị 100% từ trên cùng và dọc theo bên trái của menu chính. Thêm

    
    

    Action

    30 vào một
    
    

    Action

    31 để căn phải menu thả xuống

    Đứng lên. Danh sách thả xuống được định vị nhờ Popper. js (trừ khi chúng được chứa trong thanh điều hướng)

  • Services
  • 52

    căn chỉnh đáp ứng

    Nếu bạn muốn sử dụng căn chỉnh đáp ứng, hãy tắt tính năng định vị động bằng cách thêm thuộc tính

    
    

    Action

    32 và sử dụng các lớp biến thể đáp ứng

    Để căn chỉnh menu thả xuống bên phải với điểm dừng đã cho hoặc lớn hơn, hãy thêm

    
    

    Action

    33

    Căn trái nhưng căn phải khi màn hình lớn

  • Services
  • 53

    Để căn trái menu thả xuống với điểm dừng đã cho hoặc lớn hơn, hãy thêm

    
    

    Action

    30 và
    
    

    Action

    35

    Căn phải nhưng căn trái khi màn hình lớn

  • Services
  • 54

    Lưu ý rằng bạn không cần thêm thuộc tính

    
    

    Action

    32 vào các nút thả xuống trong thanh điều hướng vì Popper. js không được sử dụng trong thanh điều hướng

    Thêm tiêu đề để gắn nhãn các phần hành động trong bất kỳ menu thả xuống nào

  • Services
  • 55

    dải phân cách

    Tách các nhóm mục menu có liên quan bằng một dải phân cách

  • Services
  • 56

    Chữ

    Đặt bất kỳ văn bản dạng tự do nào trong menu thả xuống có văn bản và sử dụng các tiện ích giãn cách. Lưu ý rằng bạn có thể sẽ cần các kiểu định cỡ bổ sung để hạn chế chiều rộng của menu

  • Services
  • 57

    Các hình thức

    Đặt một biểu mẫu trong menu thả xuống hoặc biến nó thành một menu thả xuống và sử dụng các tiện ích lề hoặc đệm để cung cấp cho nó khoảng trống mà bạn yêu cầu

  • Services
  • 58
  • Services
  • 59

    tùy chọn thả xuống

    Sử dụng

    
    

    Action

    37 hoặc
    
    

    Action

    38 để thay đổi vị trí của danh sách thả xuống

    
    

    Action

    0

    Cách sử dụng

    Thông qua thuộc tính dữ liệu hoặc JavaScript, plugin thả xuống chuyển đổi nội dung ẩn (menu thả xuống) bằng cách chuyển đổi lớp

    
    

    Action

    39 trên mục danh sách gốc. Thuộc tính
    
    

    Action

    50 được dựa vào để đóng các menu thả xuống ở cấp ứng dụng, vì vậy bạn nên luôn sử dụng thuộc tính này

    Trên các thiết bị hỗ trợ cảm ứng, việc mở một danh sách thả xuống sẽ thêm các trình xử lý trống (

    
    

    Action

    51)
    
    

    Action

    52 cho phần tử con trực tiếp của phần tử. Bản hack xấu xí được thừa nhận này là cần thiết để giải quyết một vấn đề khó hiểu trong ủy quyền sự kiện của iOS, điều này sẽ ngăn một lần nhấn ở bất kỳ đâu bên ngoài danh sách thả xuống kích hoạt mã đóng danh sách thả xuống. Sau khi đóng danh sách thả xuống, các trình xử lý
    
    

    Action

    52 trống bổ sung này sẽ bị xóa

    Thông qua thuộc tính dữ liệu

    Thêm

    
    

    Action

    50 vào một liên kết hoặc nút để chuyển đổi danh sách thả xuống

    
    

    Action

    1

    Qua JavaScript

    Gọi danh sách thả xuống qua JavaScript

    
    

    Action

    2

    Vẫn yêu cầu
    
    

    Action

    50

    Bất kể bạn gọi trình đơn thả xuống của mình qua JavaScript hay thay vào đó sử dụng data-api, thì luôn cần phải có

    
    

    Action

    50 trên phần tử kích hoạt của trình đơn thả xuống

    Tùy chọn

    Các tùy chọn có thể được chuyển qua thuộc tính dữ liệu hoặc JavaScript. Đối với các thuộc tính dữ liệu, hãy thêm tên tùy chọn vào

    
    

    Action

    57, như trong
    
    

    Action

    58

    TênTypeDefaultMô tảoffsetnumber. chuỗi. chức năng0

    Độ lệch của danh sách thả xuống so với mục tiêu của nó

    Khi một hàm được sử dụng để xác định phần bù, nó được gọi với một đối tượng chứa dữ liệu phần bù làm đối số đầu tiên của nó. Hàm phải trả về một đối tượng có cùng cấu trúc. Nút DOM phần tử kích hoạt được chuyển làm đối số thứ hai

    Để biết thêm thông tin tham khảo Popper. js

    flipbooleantrueCho phép danh sách thả xuống lật trong trường hợp phần tử tham chiếu bị chồng chéo. Để biết thêm thông tin tham khảo Popper. js. ranh giới. ranh giới ràng buộc phần tử'scrollParent'Overflow của menu thả xuống. Chấp nhận các giá trị của
    
    

    Action

    59,
    
    

    Action

    70,
    
    

    Action

    71 hoặc tham chiếu HTMLElement (chỉ dành cho JavaScript). Để biết thêm thông tin tham khảo Popper. js. chuỗi tham chiếu. element'toggle'Reference phần tử của menu thả xuống. Chấp nhận các giá trị của
    
    

    Action

    72,
    
    

    Action

    73 hoặc tham chiếu HTMLElement. Để biết thêm thông tin tham khảo Popper. js. chuỗi hiển thị'động'Theo mặc định, chúng tôi sử dụng Popper. js cho định vị động. Vô hiệu hóa điều này với
    
    

    Action

    74

    Lưu ý khi

    
    

    Action

    75 được đặt thành bất kỳ giá trị nào khác với ________ 271, kiểu ________ 277 được áp dụng cho vùng chứa ________ 61

    phương pháp

    MethodDescription
    
    

    Action

    79Chuyển đổi menu thả xuống của thanh điều hướng đã cho hoặc điều hướng theo thẻ.
  • Services
  • 10Hiển thị menu thả xuống của một thanh điều hướng nhất định hoặc điều hướng theo thẻ.
  • Services
  • 11Ẩn menu thả xuống của một thanh điều hướng hoặc điều hướng theo thẻ nhất định.
  • Services
  • 12Cập nhật vị trí của phần tử thả xuống.
  • Services
  • 13Hủy sổ thả xuống của một phần tử

    Sự kiện

    Tất cả các sự kiện thả xuống đều được kích hoạt tại phần tử cha của

    
    

    Action

    31 và có thuộc tính
  • Services
  • 15, có giá trị là phần tử neo chuyển đổi. Sự kiện
  • Services
  • 16 và
  • Services
  • 17 có thuộc tính
  • Services
  • 18 (chỉ khi loại sự kiện ban đầu là
  • Services
  • 19) chứa Đối tượng sự kiện cho sự kiện nhấp chuột

    Tại sao nút thả xuống bootstrap không hoạt động?

    Giải pháp. Trình đơn thả xuống phải được chuyển đổi thông qua thuộc tính dữ liệu hoặc sử dụng javascript . Trong chương trình trên, chúng ta quên thêm thuộc tính dữ liệu nên dropdown không hoạt động. Vì vậy, hãy thêm data-bs-toggle="dropdown" để chuyển đổi danh sách thả xuống.

    Làm cách nào để trình đơn thả xuống bootstrap hoạt động?

    Để mở trình đơn thả xuống, hãy sử dụng nút hoặc liên kết có lớp. dropdown-toggle và thuộc tính data-toggle="dropdown" . Các. lớp dấu mũ tạo biểu tượng mũi tên dấu mũ (), biểu thị rằng nút này là một danh sách thả xuống. thêm. dropdown-menu thành phần tử

    Làm cách nào để thêm trình đơn thả xuống Bootstrap trong Angular?

    Cách tiếp cận. .
    Đầu tiên, cài đặt angular ng bootstrap bằng lệnh đã đề cập ở trên
    Nhập mô-đun ng bootstrap trong mô-đun. ts nhập { NgbModule } từ '@ng-bootstrap/ng-bootstrap'; . [ NgbModule ]
    trong ứng dụng. thành phần. html, tạo một thành phần thả xuống
    Phục vụ ứng dụng bằng cách sử dụng ng serve