2

ユーザーがダイアログの外側をクリックした場合にイベントをトリガーするブートストラップ モーダルのオプションはありますか?

例:ユーザーがモーダルから離れた場所をクリックしたときに、アニメーション化されたシェイクcssを追加したいと思います。

4

4 に答える 4

5
$('#myModal').on('hidden.bs.modal', function (e) {
    // do something...
})

(出典: http://getbootstrap.com/javascript/ )

于 2016-09-07T07:55:56.017 に答える
4

はい、示されているイベントを使用して、誰かがボディをクリックすると (つまりモーダルの外側で) 何かを実行する新しい関数を起動できます。

event.stopPropagation()外側をクリックしたときにモーダルを閉じないようにすることも忘れないでください。

ここに例があります:

$('#myModal').on('shown', function () {
  $('body').on('click', function(e) {
    // your function...
    e.stopPropagation();
  });
})

$('#myModal').on('hidden', function () {
  $('body').off('click');
});
于 2013-01-30T13:54:47.577 に答える
1

これは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 ではない) かどうかを確認できます。

于 2013-01-30T13:53:54.197 に答える
0

アニメーション シェイクは、モーダル ポップオーバーのデフォルト機能です。これを行うには、 backdrop:'static'を設定するだけです。これにより、誰かがモーダルの外側をクリックしたときにポップオーバーが閉じなくなり、揺れるアニメーションが有効になります。

$('#myModal').modal({
     backdrop:'static', show: true
})

詳しくはこちらをご覧ください

于 2013-12-17T13:23:55.507 に答える