使用动态数据时,对话框第二次打开(关闭后)

时间:2011-09-08 05:46:25

标签: jquery ajax struts

我正在编写一个对话框弹出窗口来执行某项任务。 Popup第一次正常开放,但没有出现第二次点击。这是我用来打开弹出窗口的代码,你能告诉我这里有什么问题吗?

$(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 个答案:

答案 0 :(得分:1)

在对话框的关闭事件中,$(this).remove()表示从DOM中删除“#ALERT_POPUP”div,因此第二次要打开对话框时,它不存在。我认为没有必要举行近距离活动。

修改

一个工作示例:

<!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>

请注意,close事件已被删除,“#alertPopup”单击init位于$(document).ready函数内。