Wie kann ich die Wiederverwendung eines Bootstrap-modal-div?
Ich würde gerne in der Lage sein, um eine Reihe von verschiedenen links auf einer Seite wiederverwenden einer modal-div über Bootstrap-modal-plugin:
<h3>This button shows a modal (<code>#utility</code>) with text "Phasellus <em>tincidunt gravida</em>..."</h3>
<br />
<a id="file_attach" data-toggle="modal" href="http://fiddle.jshell.net/jhfrench/6K8rD/show/" data-target="#utility" class="btn">Modal 1</a><br />
<h3>This button should invoke the same modal (<code>#utility</code>), but fill it with text "Phasellus <em>egestas est eu</em>..."</h3>
<br />
<a id="file_attach" data-toggle="modal" href="http://fiddle.jshell.net/jhfrench/AWSnt/show/" data-target="#utility" class="btn">Modal 2</a><br />
<!-- Modal -->
<div id="utility" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Click outside modal to close it</h3>
</div>
<div class="modal-body">
<p>One fine body…this is getting replaced with content that comes from passed-in href</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>
Ich würde erwarten, dass ein Klick auf einen der Links (was sind gestaltet wie buttons) aufrufen würde den modal und laden Sie die modale mit der Seite (Wert href
) entsprechend der angeklickten Schaltfläche. Stattdessen werden die modalen lädt stets mit dem Inhalt von dem link, den Sie klicken Sie auf erste; der modal-nicht "refresh" mit dem Inhalt, dass sollte bestimmt werden, indem href
von der "anderen" - link.
Ich denke, das ist eine Bootstrap-Fehler, aber ich bin mit der Frage hier in den Fall bin ich mit es falsch.
Finden Sie http://jsfiddle.net/jhfrench/qv5u5/ für eine demonstration.
- haben Sie versucht, rufen Sie die Funktion removeData? So etwas wie: $('body').auf('hidden', '.modal', function () { $(this).removeData('modal'); });
- habe es versucht (siehe fiddle), aber keine Freude.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach weiterer recherche fand ich ein paar Bootstrap-Themen, in denen dieses Verhalten hier und hier. Ich habe gefragt, für Problem 5514 geöffnet werden.
Mittlerweile, das jQuery-patch wird das problem*:
Finden Sie http://jsfiddle.net/jhfrench/qv5u5/51/ für ein Beispiel.*
*-Für einige Grund, manchmal beim klicken auf die Schaltfläche in der fiddle der modal zeigen leer. Dies ist nicht ein problem in der Anwendung arbeite ich mit, so dass ich vermute, es ist ein problem, unabhängig von dieser Frage/Antwort.
$(this).removeData('modal');
funktioniert nicht, ich habe es gut funktioniert auf die gleiche Geige. Könnten Sie erklären, wie Ihr patch funktioniert besser als dieremoveData
?Anstatt zu schreiben, html-markups aus modal und zu manipulieren, es per javascript, würde ich die Verwendung von Bootstrap-Dialogfeld zu erleichtern alles:
Hier finden Sie eine live-demo, lädt er die beiden urls, die Sie in Ihrem Beispiel:
http://jsfiddle.net/txrM8/
Sehen Sie mehr über Bootstrap-Dialogfeld:
http://nakupanda.github.io/bootstrap-dialog/