jqueryとtwitterのブートストラップは初めてなので、ばかげた質問はご容赦ください。
ツイッターブートストラップモーダルを設定するMVCビューがあり、これはこのビュー内に出力されるリンクによってアクティブ化されます。
モーダルでdata-remoteを使用して、MVC部分ビューのコンテンツをモーダルにロードしたいと思います。
私はこれらすべてがうまく機能しています。
しかし、私がやりたかったのは、メインビューからjqueryを介して(部分ビューから)要素にアクセスできることでした。セレクターが正しく機能していると確信していても、期待どおりに機能していません。
たとえば、クリックイベントに割り当てようとしているhrefリンクがありますが、これは起動しません。
ただし、モーダルボディにプルされた部分ビュー内に出力されるようにスクリプトを移動すると、スクリプトは機能し、クリックイベントが処理されます。
部分ビューでスクリプトを使用する必要はなく(参照されている場合でも)、メインビューで1つのスクリプトを参照します。
スクリプトをリモート部分ビュー内に配置しなくても、モーダルボディにリモートでロードされている要素にアクセスできる方法はありますか?
さらに、モーダルがデータリモートを使用せず、アンカーhrefがモーダルボディ内に直接挿入されたテストをモックアップしましたが、これを実行しても、このanchor.clickイベントにアクセスできません。メインページ。どんな提案でも大歓迎です。
さらに調査を行うと、次の投稿で答えが見つかりました 。モーダルダイアログで入力値を設定する方法は?
これは、jqueryセレクターに.modal-bodyも含める必要があることを示唆しているようです。そのため、セレクターを次のように変更しました。
$("#TestButton").click(function (ev) {
ev.preventDefault()
alert('Test Button Clicked');
})
これに
$(".modal-body #TestButton").click(function (ev) {
ev.preventDefault()
alert('Test Button Clicked');
})
そして今、私が当初予想していたようにクリックイベントが発生します。
ただし、jqueryセレクターの一部として.modal-bodyが必要な理由がわかりません。誰かがこれを説明できますか?