Диалог не открывается во второй раз (после закрытия) при использовании динамических данных - PullRequest
1 голос
/ 08 сентября 2011

Я пишу всплывающее диалоговое окно, чтобы выполнить какую-то задачу через него. Всплывающее окно открывается нормально в первый раз, но не отображается при втором нажатии. Вот код, который я использую для открытия всплывающего окна. Пожалуйста, дайте мне знать, что здесь не так?

$(document).ready( function() { 
   $( "#ALERT_POPUP" ).dialog({
      autoOpen: false, 
      height:400, 
      width:900, 
      modal:true,    
      show: 'slide', 
      hide: 'slide',
      close: function(ev, ui) {$(this).remove();}
   });
});

$( "#alertPopup").click(function() { 
   $.ajax({
url: "alertAction.do?reqCode=alertSearch",
   success: function(returnedData){
         $('#ALERT_POPUP').empty().append(returnedData).dialog('open');
         return false;
      } 
   }); 
});

Вопрос: Также я хочу, чтобы несколько операций в диалоговом окне одного окна. Может ли кто-нибудь дать мне указатель, чтобы отправить диалоговую форму несколько раз, не заходя в родительское окно? Пожалуйста, помогите !!!

1 Ответ

1 голос
/ 08 сентября 2011

В событии закрытия диалога $ (this) .remove () означает, что вы удаляете div "#ALERT_POPUP" из DOM, поэтому во второй раз, когда вы хотите открыть диалоговое окно, его не существует.Я думаю, нет необходимости в событии закрытия.

РЕДАКТИРОВАТЬ

Рабочий пример:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Test</title>

    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all" />

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready( function() {
           $( "#ALERT_POPUP" ).dialog({
              autoOpen: false,
              height:400,
              width:900,
              modal:true,
              show: 'slide',
              hide: 'slide'
           });

           $("#alertPopup").click(function() {
                $.ajax({
                    url: "test.html",
                    success: function(returnedData){
                        $('#ALERT_POPUP').empty().append(returnedData).dialog('open');
                        return false;
                    }
                });
            });
        });

    </script>

</head>

<body>

    <div id="ALERT_POPUP"></div>

    <button id="alertPopup">Click!</button>

</body>

</html>

Обратите внимание, что событие закрытия удалено иинициализация клика "#alertPopup" находится внутри функции $ (document) .ready.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...