0

Ich habe ein Skript, das Seiteninhalt dynamisch in Bootstrap 3 modal lädt. Hier ist etwas kleiner Ausschnitt:Bootstrap modale und Inline-Skripte

var modal = $('#my-modal'); 
var modalContent = modal.find('.modal-content'); 

modalContent.load(url, data, function() { 
    modal.modal(options); 
}); 

und das funktioniert gut, außer wenn ich brauche Inline js Skript von geladener Seite laufen, umwickelt mit <script> Tag. Tatsächlich wird es aber jedes zweite Mal ausgeführt. Bedeutung, wenn ich Knopf habe, um ein Modal mit einigen Anmerkungen zu öffnen, wenn ich Knopf drücke, wird es Modal öffnen, und Skripten werden ausgeführt. Wenn ich modal schließe und es wieder öffne, wird es nicht. Wieder, schließen und wieder öffnen ... funktioniert ...

Nicht funktioniert, auch wenn ich Modal vollständig vor der Initialisierung wieder zerstören, habe ich immer noch das gleiche Problem.

var modal = $('#my-modal'); 
var modalContent = modal.find('.modal-content'); 

modalContent.load(url, data, function() { 
    modal.modal('hide').data('bs.modal',null); 
    modal.modal(options); 
}); 

bearbeiten: Wenn ich denselben geladenen Inhalt in andere div setzen, es funktioniert gut!

+0

Was genau in den Skripten ist, die geladen werden? Fügen Sie Ereignishandler und dergleichen hinzu? Definieren Sie die gleichen Funktionen mehrmals neu? – DelightedD0D

+0

@ DelightedD0D egal was im Skript ist, auch wenn es einfach ist console.log(). Wenn ich geladenen Inhalt in ein anderes Div außerhalb des Modals rendere, funktioniert es wie angenommen – dzona

Antwort

0

Noch nicht sicher, was dieses Problem verursacht hat, aber hier ist, was es gelöst hat. Ich habe jedes Mal, wenn Modal geschlossen wird, einen klaren modalen Inhalt div, also wird, wenn neuer Inhalt geladen wird, dieser immer in einen leeren modalen Inhalt div geladen.

Dies ist Skript, das Modalfunktionen initialisieren:

modal = $('#my-modal'); 
modal.on('hidden.bs.modal', function() { 
    modal.find('.modal-content').empty(); 
}); 
Verwandte Themen