2009-11-14 8 views
9

javascriptとjQueryの新機能です。 jQuery UIウィジェットを使用してモーダルダイアログを実装しようとしています。jQuery UIモーダルダイアログボックスがブロックされない

モーダルダイアログボックスはOKとキャンセルボタンで正しく表示されますが、ダイアログ( 'open')関数呼び出しはブロックされておらず、OKまたはキャンセルのクリックを待っていないようです。私は次のコード

を実行したときにモーダルダイアログが現れ例えば、.....ボタンを

okToDelete = false; //a global variable 
    $('deleteDialog').dialog('open'); //this does not block but returns immediately 
    alert(okToDelete == true ? "ok" : "false"); 

をクリックし、アラートボックスがTHEN最初に表示し、されます! okToDeleteは関数を入力するとfalseに設定され、OKボタンのコールバックでtrueに設定されたグローバル変数です。

は、ここでそれを 'ブロック' することを意図していない私のダイアログinit関数

$("#deleteDialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     modal: true, 
     overlay: { 
      backgroundColor: '#000', 
      opacity: 0.5 
     }, 
     buttons: { 
      Cancel: function() { 
       $(this).dialog('close'); 

      }, 
      Ok: function() { 
       $(this).dialog('close'); 
       okToDelete = true; 
      } 
     } 
    }); 

答えて

11

です。 callbackまたはokcancelファンクション内に配置する場合は、アラートを表示する(テスト用)、またはダイアログが閉じた後に他の関数を呼び出す場合は、
http://docs.jquery.com/UI/Dialog#event-close

イベントcloseドキュメントから:
ダイアログを閉じたときに、このイベントがトリガされ、このうち

チェック。
コード例

closeイベントを処理するコールバック関数をinitオプションとして指定します。

$('.selector').dialog({ 
    close: function(event, ui) { ... } 
}); 

閉じるイベントを入力するには、以下のように入力します。

$('.selector').bind('dialogclose', function(event, ui) { 
    ... 
}); 
関連する問題