2016-09-08 5 views
1

シナリオユーザーがブートストラップモーダルダイアログの外側をクリックしたときにイベントを捕捉する方法は?

  1. 私は
  2. Ajax呼び出しが

問題

  • データが返され、モーダルは
  • を示しているサーバーに対して行われ、ボタンをクリックしてください:

    ユーザーがコーナーIの閉じるボタンまたは「X」をクリックするとこの2つの要素にクラスを割り当て、このクラスにイベントを割り当てることでこのイベントを捕捉します。

    コード

    $(document).on("click", ".dialogTankClose", function() { 
        //some code 
    }) 
    

    私の問題は、私は、ユーザーがダイアログまたはプレス「エスケープ」の外側でクリックしたときにキャッチする方法を見つけ出すことができないということです。

    $(document).on("click", "modalCloseEvent",function(){ 
    // how to catch this? 
    }) 
    

    これをどのように捕まえることができますか?

    答えて

    2

    ブートストラップモダルは、終了時にイベントを発生させます。フックできるのはhidden.bs.modalです。このイベントは、モーダルがどのように閉じられていても発生します。 Bootstrap documentation

    +0

    に情報

    $(document).on("hidden.bs.modal", '#bootstrapModal', function() { $.automation.worker.bindIntervalEvent("#TanksContent", "/Tank/GetTanks", function() { $.automation.tanks.tableInit(); }); }); 

    もっと私はこれを正しく理解していれば、あなたがいることをrequiere:モーダルを動的にDOMに追加されている場合は、委任イベントハンドラを使用することができます

    $('#bootstrapModal').on("hidden.bs.modal", function() { $.automation.worker.bindIntervalEvent("#TanksContent", "/Tank/GetTanks", function() { $.automation.tanks.tableInit(); }); }); 

    :これを試してみてくださいモーダルコンテナは常にページにありますか?これはここでは当てはまりません。私は私のajaxコールからenitreダイアログを返します – ThunD3eR

    +0

    その後、委任されたイベントハンドラを使用することができます。回答が更新されました。 –

    +0

    @Rory McCrossanありがとうございました! – ThunD3eR

    関連する問題