Bootstrap 3 - モーダルボディのコンテンツをAJAXで読み込むには?
ここ]1を見ればわかるように、私はモーダルを起動するボタンを持っています。ボタンにhref urlを設定すると、このURLはBootstrap 3によって自動的にモーダルに読み込まれます。 事実、このページはモーダルのルートに読み込まれています(bootstrap 3 documentation for modals usageで述べられています)。私はそれを代わりにmodal-bodyにロードしたいのです。
javascriptではなく、属性を使ってそれを行う方法はありますか?あるいは、最も自動的な方法は何でしょうか?
P.S. Bootstrap 2では、コンテンツはルートではなくボディに読み込まれていたと記憶しています。
71
3
これは、ほんの少しjavascriptを追加するだけで、実際には超簡単です。リンクのhrefはajaxコンテンツのソースとして使用されます。Bootstrap 3.*では、非推奨のBootstrapロード関数を無効にするために、
data-remote="false"
を設定していることに注意してください。JavaScriptを使用しています。
Html([公式の例][2]に基づいています)。
ご自身でお試しください: https://jsfiddle.net/ednon5d1/
[2]: http://getbootstrap.com/javascript/#live-demo
このSOの答え](https://stackoverflow.com/questions/18378720/bootstrap-3-with-remote-modal)をチェックしてみてください。
唯一の方法は、モーダル構造全体をajaxレスポンスで提供することのようです。
bootstrap source codeで確認できるように、load関数はroot要素にバインドされています。
ajaxレスポンスを変更できない場合、単純な回避策としては、ルート要素のshow/hide機能が壊れてしまうかもしれませんが、body要素で
$(...).modal(...)
プラグインを明示的に呼び出すことができます。このカスタム関数を探しているのではないでしょうか。この関数はdata-toggle属性を受け取り、リモートコンテンツを配置するために必要なdivを動的に作成します。AJAXで読み込みたいリンクに、data-toggle="ajaxModal"を配置するだけです。
JSの部分です。
最後に、リモートコンテンツでは、全体の構造を機能させる必要があります。