2012-03-04 7 views
1

私のjquery UIダイアログの設定は次のとおりです。jqueryダイアログクローズイベントは発生しませんか?

$("#dayEditForm").dialog({ 
     autoOpen: false, 
     height: 475, 
     width: 750, 
     title: "Edit", 
     modal: true, 
     show: 'drop', 
     hide: { effect: "drop", direction: "right" }, 
     open: function() { 
      $("#editForm").validate(); 
     }, 
     close: function() { 
      alert("closing dialog"); 
      $("#editForm").resetForm(); 
     }, 
     buttons: { 
      "Save": function() { 
       var isValid = $("#editForm").valid(); 
       if (isValid) { 
        // Save stuff here 
        $(this).dialog("close"); 
       } 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

ただし、「閉じる」イベントのalert("closing dialog")は決して表示されません。私は何を間違えたのですか?

UPDATE: 私はそれが正常に動作し、ダイアログ定義から

hide: { effect: "drop", direction: "right" } 

この行を削除した場合...

は、これはバグですか?または期待される行動ですか?

+1

また、私はもう一度 'close'イベントを使用する際に問題が発生します。理由を説明することはできませんが、そのイベントを 'beforeClose'に変更して、そのトリックを行うかどうかを確認してください。 –

+0

"resetForm"を開いた部分に移動しました。私はちょうどユーザーが次回にそれを見る前にフォームをリセットしたいので、それは問題ありません。 –

答えて

1

これは、これ以降のバージョンで解決されたバグだと思います。 hereを参照してください。 jQuery-ui 1.9.1は、この問題を解決したための良い賭けです。

ソースをアップグレードしたくない場合は、コメント内のGoranのポイントも私のために働きます。のイベントを交換してください。これは、あなたが達成したいことに応じて発射され、おおよそ同等でなければなりません。

質問を掲示して、hideオプションとの相関関係を計算してくれてありがとう!

0

私はの代わりにCancelの代わりにbuttons部分を使用する必要があると思います。

+3

オブジェクト表記は、連続した名前 – charlietfl

関連する問題