2011-12-21 47 views
26

Tôi đang sử dụng hộp thoại phương thức khởi động twitter. Và nó hoạt động tốt trong khi chỉ mở nó vớibootstrap modal không phải là chức năng

<a class="btn" data-controls-modal="my-modal" >Launch Modal</a> 

Nhưng khi tôi thử một cái gì đó giống như

$('#close_popup').click(function(){ 
    $('#rules').modal('toggle');  
}); 

tôi nhận được một lỗi javascript:

bootstrap modal is not a function

Hơn nữa. Theo như tôi hiểu liên kết với .close phải đóng cửa sổ và không. Tôi làm gì sai?

+1

Bạn đã bao gồm bootstrap-modal.js? – redGREENblue

+3

chắc chắn tôi đã làm nếu không cửa sổ bật lên sẽ không hoạt động ở tất cả –

Trả lời

62

Tôi không biết liệu bạn có tìm ra vấn đề này hay không là một vài tháng trước khi bạn đặt câu hỏi, nhưng tôi đã gặp phải vấn đề tương tự và nó phải làm với xung đột với một plugin khác, vì vậy tôi sẽ đăng giải pháp cho các yêu cầu trong tương lai.

Dưới đây là ví dụ về những gì tôi đã làm để giải quyết vấn đề này.

function ShowImageInModal(path) { 
    jQuery.noConflict(); 
    (function ($) { 
     $('#modalImage').removeAttr("src").attr("src", path); 
     $('#myModal').modal('show'); 
    } 
    )(jQuery); 
} 
+10

+1 về điều này. Tất cả những gì tôi cần thêm là jQuery.noConflict() * trước * $ ('# myModal'). – conor

+0

có thể xác nhận với @conor; jQuery.noConflict() trước khi cuộc gọi đến .modal ('show') đã khắc phục sự cố trong cả Chrome và Firefox và đã loại bỏ một giải pháp xấu xí – nyusternie

+0

@Etch Cảm ơn rất nhiều, thêm JQuery.noConflict() trước khi dòng làm việc cho tôi quá. –

0
$('#rules').modal('toggle'); 

'Quy tắc' có phải là id của phương thức của bạn không ?? vì chúng ta có thể sử dụng các phương thức .modal chỉ với div có lớp 'modal'.

và bạn cho rằng

<a class="btn" data-controls-modal="my-modal" >Launch Modal</a> 

này đang làm việc tốt và trong này bạn phải sử dụng 'my-modal' id cho phương thức.

11

có thể là một cuộc xung đột không gian tên, chỉ cần làm điều này ...

jQuery(document).ready(function($) { 
    $('#myModal').modal('toggle'); 
}); 
1

Hãy chắc chắn rằng bạn đang không tải nhiều file jquery từ nhiều địa điểm, địa phương hoặc từ xa.

0

tôi giải quyết vấn đề này bằng cách loại bỏ các đoạn mã sau:

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
       <h4 class="modal-title" id="myModalLabel">Feed Selection</h4> 
      </div> 
      <div class="modal-body"> 
      </div> 
      <div class="modal-footer"> 
       <!-- <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> --> 
       <button type="button" id="feedsave" class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
    </div> 
</div> 

Có nghĩa bootbox bằng cách nào đó xung đột với các phương thức bootstrap popup.

1

Thêm jQuery.noConflict() bên trong $(document).ready(function(){}) cũng có thể trợ giúp.

$(document).ready(function(){ 
    jQuery.noConflict(); 
}); 
Các vấn đề liên quan