単一のモーダル ("#agenda-modal") が定義されたページを使用しています。トリガー (.agenda-item) がクリックされると、次のようなリモート コンテンツでこのモーダルが表示されます。
$("body").on("click", ".agenda-question", function(e){
var url = <build my url here>;
$("#agenda-modal").modal({
remote: url
});
});
これは問題なく動作します (.agenda-items は JavaScript 経由で追加されるため、$body.on をリッスンしています)。
モーダルが閉じられたら、ページの一部(モーダル内のフォームが変更する部分)をリロードしたい。だから私は使用しています:
$("#agenda-modal").on("hidden", function(){
alert("hidden");
});
もちろん、すべてに包まれています
$(function() {...});
これは機能しますが、一度だけです。最初にページを読み込んでトリガーをクリックすると、モーダルが読み込まれ、モーダルを閉じるとアラートが発生します。同じトリガーをもう一度クリックすると、モーダルが再び表示されますが、今回はアラートを閉じても発生しません!
わかりませんが、これはリスナー - on("hidden", function...) - がもう「バインド」されていないためですか? .on は常にイベントをキャッチすると思っていましたか?
モーダルのコードは、Twitter からそのままです。
<div class="modal hide fade" id="agenda-modal">
<div class="modal-body"></div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal">Close</button>
</div>
</div>
何か案は?変更されたページの部分を更新できるように、モーダルが閉じるタイミングをキャッチしたいと本当に思っています。
ところでレールを使用していますが、それが重要かどうかはわかりません...