2014-07-26 14 views
5

Tôi muốn sử dụng URL có băm để gọi các phương thức Bootstrap cụ thể. Nói cách khác, người dùng ở trên trang1 và nhấp vào liên kết đến page2 # hash và #hash tải phương thức khi tải trang2. Tôi đã thử rất nhiều biến thể dựa trên những gì tôi đã đọc trong Q/As khác, nhưng không có gì đã làm việc. Tôi hoàn toàn không có kinh nghiệm với JS, vì vậy tôi sẽ đánh giá cao một số trợ giúp!Chuyển đổi chế độ Bootstrap bằng URL và băm

Dưới đây là những gì tôi có:

liên kết trên page1: <a href="/page2#myModal>

HTML trên page2:

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-hidden="true"> 
    ... 
</div> 


Javascript trên page2:

<script> 
    if(window.location.hash) { 
    var hash = window.location.hash; 
    $("'" + hash + "'").modal('toggle'); 
    } 
</script> 


Ngẫu nhiên, <a href="#" data-toggle="modal" data-target="#myModal"> hoạt động tốt để gọi phương thức khi người dùng thực sự ở trang2.

Trả lời

12

Bạn đang thêm dấu nháy đơn để chọn bạn, chọn lọc dùng không sử dụng dấu ngoặc kép:

$("'" + hash + "'").modal('toggle'); 

nên

$(hash).modal('toggle'); 

Ngoài ra bạn có thể không được chờ đợi dom phải sẵn sàng để sử dụng . Nếu bạn không có tập lệnh đó ở cuối trang hoặc ít nhất bên dưới nơi html phương thức của bạn, nó sẽ không được tìm thấy vì nó chưa được tạo.

<script> 
    //shortcut for $(document).ready 
    $(function(){ 
     if(window.location.hash) { 
      var hash = window.location.hash; 
      $(hash).modal('toggle'); 
     } 
    }); 
</script> 
+0

Xin cảm ơn, Patrick. Tôi đã chuyển js xuống dưới cùng của trang, và thay thế js của tôi với bạn, và nó vẫn không hoạt động. Không biết tại sao ... – lacoder

+0

Bạn có gặp lỗi trên bảng điều khiển của mình không? Hay bạn có một ví dụ sống có thể được xem? –

+0

OK! Giao diện điều khiển cho thấy "Uncaught TypeError: undefined không phải là một hàm", và nó đã tham chiếu đến dòng với '$ (hash) .modal ('toggle');'. Vì vậy, tôi đã làm một số đào và thay đổi jquery của chúng tôi từ 1.11.1 đến 2.1.1. Sau đó, mã bạn cung cấp đã hoạt động! Rất cám ơn, Patrick. – lacoder

Các vấn đề liên quan