2011-12-02 17 views
5

テーブルを表示するダイアログが表示されます。「削除」ボタンをクリックすると、別のダイアログボックスが表示され、確認を求められます。現在のところ、これは初めてうまく動作しますが、2回目の「削除」ボタンをクリックすると、削除ダイアログにの後ろにの最初のテーブルダイアログが表示されるので、実際には表示されません。jquery ui - ネストされたダイアログZ-インデックスの問題

私は両方のダイアログのZインデックスを設定しようとしましたが、それは唯一の

は、以下の最初の時間で働いている理由を私は知らないが、私のスクリプトのサンプルです:

// The 1st dialog 
    var $detaildialog = $('#tableplaceholder').dialog({ 
     autoOpen: false, 
     modal: true, 
     width: '800', 
     height: 'auto' 

    }); 
    // Some steps to set the url.. then open the dialog 
    $detaildialog.load(url, function() { 

      $('#loading').hide(); 
      $detaildialog.dialog('open'); 
     }); 

    // Then, when delete action is called, open the second dialog 
    fnOnDeleting: function (tr, id, fnDeleteRow) { 
      var $dialog = $('#checkdeletedialog').dialog({ 
       autoOpen: false, 
       modal: true, 
       title: 'Delete Confirmation', 
       zIndex: 90000 
      }); 
      $dialog.dialog('open'); 
     } 

ここで間違っていることは何ですか?

答えて

6

:)おかげでtrueに二ダイアログの「スタック」プロパティを設定します。..任意の助けに感謝します。

function (tr, id, fnDeleteRow) { 
     var $dialog = $('#checkdeletedialog').dialog({ 
      autoOpen: false, 
      modal: true, 
      stack: true, 
      title: 'Delete Confirmation' 
     }); 
     $dialog.dialog('open'); 
    } 

詳細情報here

EDIT:オープニング後に奇妙な動作をするモーダルダイアログにも問題がありました。ダイアログを閉じたときにダイアログを「破棄」すると、問題が解決されることが判明しました。

var $dialog = $('#checkdeletedialog').dialog({ 
     autoOpen: false, 
     modal: true, 
     stack: true, 
     title: 'Delete Confirmation', 
     close: function() { 
      $(this).dialog('destroy'); 
     } 
    }); 
+0

こんにちは、私は試してみましたが、他のアイデアはありませんか?ありがとうございます – shennyL

+1

'stack:true'オプションと組み合わせてZ-インデックスを指定しないでください – tobias86

+1

これで完了したら、ダイアログを '破壊する'ことも検討してください。編集済みの回答を参照してください。 – tobias86

関連する問題