ユーザーがダイアログの外側をクリックした場合にイベントをトリガーするブートストラップ モーダルのオプションはありますか?
例:ユーザーがモーダルから離れた場所をクリックしたときに、アニメーション化されたシェイクcssを追加したいと思います。
ユーザーがダイアログの外側をクリックした場合にイベントをトリガーするブートストラップ モーダルのオプションはありますか?
例:ユーザーがモーダルから離れた場所をクリックしたときに、アニメーション化されたシェイクcssを追加したいと思います。
$('#myModal').on('hidden.bs.modal', function (e) {
// do something...
})
はい、示されているイベントを使用して、誰かがボディをクリックすると (つまりモーダルの外側で) 何かを実行する新しい関数を起動できます。
event.stopPropagation()
外側をクリックしたときにモーダルを閉じないようにすることも忘れないでください。
ここに例があります:
$('#myModal').on('shown', function () {
$('body').on('click', function(e) {
// your function...
e.stopPropagation();
});
})
$('#myModal').on('hidden', function () {
$('body').off('click');
});
これはBootstrap専用ではありませんが、あなたが尋ねたことを実行できるはずです。
次のコード スニペットは、ページ上の任意の場所のクリックを検出します。次に、何がクリックされたかを調べ、それに基づいて何をすべきかを決定します。
$(document).click(function (e) {
//Dont hide the button if it's a link or input that was clicked
if ((e.target.nodeName == 'A') || (e.target.nodeName == 'INPUT')) return;
HideSubmenus();
});
あなたの場合、おそらくそれが Div ではない (したがって Modal ではない) かどうかを確認できます。
アニメーション シェイクは、モーダル ポップオーバーのデフォルト機能です。これを行うには、 backdrop:'static'を設定するだけです。これにより、誰かがモーダルの外側をクリックしたときにポップオーバーが閉じなくなり、揺れるアニメーションが有効になります。
$('#myModal').modal({
backdrop:'static', show: true
})
詳しくはこちらをご覧ください