2011-12-21 15 views
26

Sto utilizzando la finestra di dialogo di avvio di avvio di twitter. e funziona benissimo mentre solo aprirlo conmodal bootstrap non è una funzione

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

Ma quando provo qualcosa come

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

ottengo un errore di javascript:

bootstrap modal is not a function

Inoltre. Per quanto ho capito, il collegamento con .close deve chiudere la finestra e non lo fa. Cosa faccio di sbagliato?

+1

È stato incluso il bootstrap-modal.js? – redGREENblue

+3

sicuramente ho fatto altrimenti popup non funzionerebbe a tutti –

risposta

62

Non so se hai risolto questo problema o non lo era un paio di mesi fa quando hai posto la domanda, ma ho trovato lo stesso problema e aveva a che fare con un conflitto con un altro plugin, quindi posterò la soluzione per future richieste.

Ecco un esempio di ciò che ho fatto per risolvere questo problema.

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

+1 su questo. Tutto quello che dovevo aggiungere era * jQuery.noConflict() * prima di * $ ('# myModal'). Modal ('show') * Grazie. – conor

+0

può confermare con @conor; jQuery.noConflict() prima che la chiamata a .modal ('show') risolvesse il problema in Chrome e Firefox e si liberasse di una brutta soluzione. – nyusternie

+0

@Etch Grazie mille, aggiungendo il JQuery.noConflict() prima che la linea funzionasse per me pure. –

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

"rules" è l'id del tuo modal ?? perché possiamo usare i metodi .modal solo con il div che ha la classe 'modale'.

e dato che

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

questo sta lavorando bene e in questo si deve utilizzare id 'my-modale' per il modale.

11

probabilmente un conflitto namespace, è sufficiente fare questo ...

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

Assicurarsi che non caricare più file jquery da più posizioni, locale o remoto.

0

ho risolto questo problema rimuovendo il seguente codice:

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

Il che significa bootbox in qualche modo in conflitto con il popup modale bootstrap.

1

Aggiungi jQuery.noConflict() all'interno di $(document).ready(function(){}) può essere d'aiuto.

$(document).ready(function(){ 
    jQuery.noConflict(); 
}); 
Problemi correlati