2013-09-05 5 views
5

In meiner Anwendung möchte ich manuell eine modale Bootstrap-Ansicht nach dem Ajax schließen Anfrage wird beendet. ich nenne jQuery('#myModal').modal('hide'); im Rückruf,jQuery Bootstrap: "TypeError: 'undefined' ist keine Funktion (Bewertung 'jQuery (' # myModal '). Modal (' hide ')')

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

aber die modale Ansicht nicht versteckt bekommen. ich doppelt geprüft, dass ich schließe jQuery vor Bootstrap, so kann das Problem nicht da sein.

Ich bekomme immer den folgenden Fehler:

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

Der Modal sieht wie folgt aus:

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

Zusätzliche Informationen:

  • jQuery-Version: 1.9.1,
  • Bootstrap-Version: 2.3.2

Irgendwelche Ideen ?

+1

Version von modal verwendet? –

+0

können Sie überprüfen, was von 'jQuery ('# myModal') zurückgegeben wird. Data ('bs.modal')' –

+0

es gibt 'undefined' – burki

Antwort

0

es ist spät, aber ich hoffe, das hilft. Stellen Sie sicher, dass Sie die jQuery-Bibliothek vor Ihr benutzerdefiniertes Skript einfügen und dass es keine Fehler auf der Registerkarte "Net" von Firebug gibt (stellen Sie sicher, dass jQuery tatsächlich geladen wird). Ihren JavaScript-Code in Firebug Testen und wenn Sie bereit sind zu Ihrer eigentlichen Code hinzufügen Sie es als anounymous Funktion aufrufen können:

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

Sie dieses Video überprüfen link to tutorial, ich glaube, sie haben eine gute Debugging-Prozess aus.

Verwandte Themen