Javascript 关闭后如何在jquery中重新打开模态对话框?
我有一个Asp.NETMVC应用程序,在1视图中,我有一个列表,其中每个记录都显示编辑图标。单击编辑图标将打开一个模式对话框弹出窗口以更新记录 在关闭对话框后,我面临重新打开对话框或单击其他编辑图标弹出窗口的问题。 以下是打开对话框的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
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");