Javascript 关闭后如何在jquery中重新打开模态对话框?

Javascript 关闭后如何在jquery中重新打开模态对话框?,javascript,jquery-ui,jquery,asp.net-mvc-4,Javascript,Jquery Ui,Jquery,Asp.net Mvc 4,我有一个Asp.NETMVC应用程序,在1视图中,我有一个列表,其中每个记录都显示编辑图标。单击编辑图标将打开一个模式对话框弹出窗口以更新记录 在关闭对话框后,我面临重新打开对话框或单击其他编辑图标弹出窗口的问题。 以下是打开对话框的jquery代码: var singltym; $(function () { $('#addSingleTimeDialog').dialog({ cache: false, autoOpen: fals

我有一个Asp.NETMVC应用程序,在1视图中,我有一个列表,其中每个记录都显示编辑图标。单击编辑图标将打开一个模式对话框弹出窗口以更新记录

在关闭对话框后,我面临重新打开对话框或单击其他编辑图标弹出窗口的问题。 以下是打开对话框的jquery代码:

var singltym;

$(function () {

    $('#addSingleTimeDialog').dialog({
            cache: false,
            autoOpen: false,
            width: 450,
            height: 450,
            closeOnEscape: true,
            resizable: true,
            modal: true});

    $('#singletymlink').on('click', function () {
            singltym = $(this);
            var dialogDiv = $('#addSingleTimeDialog');
            var viewUrl = singltym.attr('href');
            $.ajax({
                cache: false,
                url: viewUrl,
                dataType: 'html',
                success: function (data) {
                    dialogDiv.html(data);
                    dialogDiv.dialog('open');
                }
            });
            return false;
        });
});
//我用这种方法工作

                  $( this ).dialog( "close" );

                }
            });
        });
});

如果
$(此).dialog(“关闭”)不工作,因为不尝试此特定句子

$('#addSingleTimeDialog').dialog("close");
您可以使用以下方法:


通过在单击并启动对话框弹出窗口的父视图中包含以下脚本,可以解决上述问题:

<script type="text/javascript" src="../../Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.unobtrusive.min.js"></script>

以及在子视图(模式对话框弹出窗口的UI)中插入以下脚本:

<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.unobtrusive.min.js"></script>

通过这种方式编写脚本,可以避免jquery脚本冲突,并且可以快速重新打开对话框。

尝试编写
$(this).对话框(“关闭”)方法。例如:

close: function(){ $( this ).dialog( "close" ); },

$(this).dialog(“close”)
不会破坏对话框,它只是关闭并使其可供下次使用

遇到了这个老问题,找到了一个更简单的解决方案,这里没有列出

为关闭事件添加事件侦听器,并在对话框关闭时调用destroy

close: function(event, ui) {$(this).dialog("destroy");}

我的问题解决了,换了新的

$(this).dialog("close");


我知道我可以,但我必须用来自服务器端控制器操作的动态数据加载对话框,为此,我需要使用url构建对话框,并将数据作为html传递给对话框。奇怪的是,我在其他视图中使用的是同一个脚本,它工作正常。我分析并发现它没有刷新对话框。我做了以下操作来强制刷新它<代码>$('#updateMstrTaskDialog')。对话框({cache:false,autoOpen:false,width:300,height:230,resizeable:true,modal:true,close:function(){location.reload();}})它可以工作,但有一个不需要的回发。我甚至尝试用
$(this.dialog(“close”),但没有成功。和`$('#addSingleTimeDialog')。对话框(“关闭”);'你试过了吗@ShalinJirawlaya甚至尝试了
$('addSingleTimeDialog')。dialog(“close”)
,但如果没有成功,请复制您的代码并粘贴,因为您错过了html(div)thanx@Mirko中的代码。如果您需要帮助解决上述问题,请在问题中发布完整的代码(),因为我为您找到了问题的解决方案。
close: function(){ $( this ).dialog( "close" ); },
close: function(event, ui) {$(this).dialog("destroy");}
$(this).dialog("close");
$(this).dialog("destroy");