0

ページ・コンテンツをブートストラップ3モーダルに動的にロードするスクリプトがあります。ここではいくつかの小さなスニペットです:ブートストラップ・モードとインライン・スクリプト

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

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

、これは私が<script>タグで包まれ、ロードされたページからインラインJSスクリプトを実行する必要がある場合を除き、正常に動作します。実際には、実行されますが、毎回実行されます。意味私はいくつかのノートでモーダルを開くボタンがある場合、私はボタンを押すとモーダルを開き、スクリプトが実行されます。モーダルを閉じてもう一度開くと、それはできません。もう一度、閉じて再開してください...

モーダルを完全に破棄しても、それを再度初期化する前に、まだ同じ問題があります。

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); 
}); 

編集:私は、他のdivに同じロードされたコンテンツを置く場合は、それが正常に動作します!

+0

正確にロードされているスクリプトでは?イベントハンドラなどを追加していますか?同じ関数を何度も再定義していますか? – DelightedD0D

+0

@ DelightedD0Dは、たとえ単純なconsole.log()であっても、スクリプトに何が入っていても関係ありません。ロードされたコンテンツをモーダル以外の他のdivにレンダリングすると、想定されたとおりに動作します – dzona

答えて

0

この問題の原因はまだわかりませんが、ここで解決しました。私はモーダルが閉じられるたびにモーダルコンテンツdivを明確にしました。新しいコンテンツがロードされると、それは常に空のモーダルコンテンツdivにロードされます。

これは、モーダル機能を初期化するスクリプト:

modal = $('#my-modal'); 
modal.on('hidden.bs.modal', function() { 
    modal.find('.modal-content').empty(); 
}); 
関連する問題