6

jquery モバイルとダイアログを使用して複数の選択ボックスを表示しています。一部のコンテンツは、選択に基づいて Ajax で動的に作成されます。ダイアログが閉じられたときに(通常のxボタンを使用して)Ajax呼び出しを行いたいと思います。HTML の主要部分は次のようになります。

    <a href="#queryPage" data-rel="dialog"  data-transition="slidedown"  >Filter Results</a>
    <div data-role="page" id="queryPage" data-theme="a">
    <div data-role="header" data-theme="a">
    <h1>Select Filters</h1>
    </div>
    <div data-role="content">
    <form action="" method="get" id="filterForm">
    <fieldset id ="filterFields"></fieldset>
    </form>
    </div>
    </div>

現在、次のようにページ非表示でコードを実行して呼び出しを行っています。 $('#queryPage').live('pagehide', function(event) { //code for ajax call });

ただし、選択リストの一部が大きく、ダイアログが閉じられていなくても queryPage を非表示にする新しいページを作成するため、ダイアログが閉じるときに呼び出しを行いたいと思います。私が試してみました:

    $('#queryPage').bind('dialogclose', function(event) {
         alert('closed');
     });

そしてまた試した

    $('#queryPage').dialog({close:function(event, ui){
        alert("closed");
    }});

これらは、ページの読み込み時に呼び出される関数に入れましたが、ダイアログが閉じられたときにアラートは表示されません。どんな助けでも大歓迎です。

4

3 に答える 3

2

Pagehide は次のように委任できます。

$(document).delegate("#MyDialog", "pagehide", function() {
  alert("Dialog closed");
});

また、呼び出しページの画面要素にもアクセスできます。

于 2014-03-05T17:11:57.327 に答える
1

Andleer は、jquery を使用してダイアログを閉じるための適切なイベントを共有しました。ただし、この方法でコーディングすることもできます。

    $(document).on("pagehide","#Dialog",function(){
        console.log('Dialog has closed.');
    });
于 2016-08-11T05:31:28.037 に答える