2013-09-05 44 views
5

Trong ứng dụng của tôi, tôi muốn đóng một khung nhìn phương thức bootstrap theo cách thủ công sau ajax yêu cầu đã được hoàn tất. tôi gọi jQuery('#myModal').modal('hide'); trong callback,jQuery Bootstrap: "TypeError: 'undefined' không phải là một hàm (đánh giá 'jQuery (' # myModal '). Phương thức (' ẩn ')')

function(){          
    jQuery('#myModal').modal('hide'); 
} 

nhưng quan điểm phương thức không được ẩn. tôi kiểm tra lại mà tôi bao gồm jQuery trước Bootstrap, vì vậy vấn đề không thể có mặt ở đó.

Tôi luôn gặp lỗi sau:

TypeError: 'undefined' is not a function (evaluating 'jQuery('#myModal').modal('hide')') 

Các phương thức trông như thế này:

<!-- Modal --> 
<div aria-hidden="false" aria-labelledby="modalInviteFlatmateLabel" role="dialog" tabindex="-1" class="modal hide fade in" id="myModal"> 
    <form id="add-flatmate-form" action="/flatmates/show" method="post">  
    <div class="modal-header"> 
     <button aria-hidden="true" data-dismiss="modal" class="close" type="button">&times;</button> 
     <h3 id="modalInviteFlatmateLabel">Invite Flatmate</h3> 
    </div> 
    <div class="modal-body"> 
     <p> 
      Enter the mail address of your flatmate you want to invite. 
     </p><br /> 
     <input placeholder="E-Mail" class="input-block-level" name="AddFlatmateForm[email]" id="AddFlatmateForm_email" type="text" /> </div> 
    <div class="modal-footer"> 
     <input class="btn btn-primary" type="submit" name="yt0" value="Invite" id="yt0" />  <!--<button class="btn btn-primary">Invite</button>--> 
    </div> 
    </form> 
</div><!--#myModal--> 

thông tin bổ sung:

  • jQuery phiên bản: 1.9.1,
  • phiên bản Bootstrap: 2.3.2

Bất kỳ ý tưởng ?

+1

phiên bản phương thức được sử dụng? –

+0

bạn có thể kiểm tra những gì được trả về bởi 'jQuery ('# myModal'). Dữ liệu ('bs.modal')' –

+0

nó trả về 'undefined' – burki

Trả lời

0

đã muộn nhưng tôi hy vọng điều này sẽ hữu ích. Đảm bảo bạn đang bao gồm thư viện jQuery trước tập lệnh tùy chỉnh của mình và không có lỗi trong tab Net của Firebug (đảm bảo jQuery thực sự được tải). Kiểm tra mã javascript của bạn trong firebug và khi đã sẵn sàng để thêm vào mã thực tế của bạn, bạn có thể gọi nó như anounymous chức năng:

(function ($) { 
    $(document).ready(function(){ 
    //your code 
    ('# id of the modal element to close ').modal('hide') 
    }); 
//your code 
}(jQuery)); 

Bạn có thể kiểm tra video này link to tutorial, tôi nghĩ rằng họ có một tốt lộ của quá trình gỡ lỗi.

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