2013-09-05 11 views
5

Nella mia applicazione voglio chiudere manualmente una vista modale bootstrap dopo l'ajax richiesta è stata terminata. chiamo jQuery('#myModal').modal('hide'); all'interno della callback,jQuery Bootstrap: "TypeError: 'undefined' non è una funzione (valutando 'jQuery (' # myModal '). Modal (' nascondi ')')

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

ma la vista modale non viene nascosto. ho controllato due volte che mi includo jQuery prima di Bootstrap, in modo che il problema non può essere lì.

Ho sempre il seguente errore:

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

Il modal assomiglia a questo:

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

Ulteriori informazioni:

  • jQuery versione: 1.9.1,
  • versione Bootstrap: 2.3.2

Tutte le idee ?

+1

versione del modale utilizzata? –

+0

puoi verificare cosa viene restituito da 'jQuery ('# myModal'). Dati ('bs.modal')' –

+0

restituisce 'indefinito' – burki

risposta

0

è tardi ma spero che questo aiuti. Assicurati di includere la libreria jQuery prima del tuo script personalizzato e che non ci siano errori nella scheda Rete di Firebug (assicurati che jQuery venga effettivamente caricato). testare il codice javascript in Firebug e quando è pronto da aggiungere al vostro codice vero e proprio si può chiamare come anounymous funzione:

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

È possibile controllare questo video link to tutorial, penso che abbiano una buona esporre di processo di debug.

Problemi correlati