Javascript jquery ui对话框只打开一次
我有一个按钮,点击时会打开一个对话框。 该对话框显示一个隐藏的divJavascript jquery ui对话框只打开一次,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,我有一个按钮,点击时会打开一个对话框。 该对话框显示一个隐藏的div 单击X图标关闭对话框后,该对话框将无法再次打开。您正在使用ui对话框吗?您应该发布一些代码,以便我们可以看到是什么导致了您的问题。但这里有一个猜测(因为我最近犯了同样的错误)。使用ui对话框时,只需初始化对话框一次 $(document).ready(function() { $('#dialog').dialog({ autoOpen:false, modal:'true', width
单击X图标关闭对话框后,该对话框将无法再次打开。您正在使用ui对话框吗?您应该发布一些代码,以便我们可以看到是什么导致了您的问题。但这里有一个猜测(因为我最近犯了同样的错误)。使用ui对话框时,只需初始化对话框一次
$(document).ready(function() {
$('#dialog').dialog({
autoOpen:false,
modal:'true',
width:450,
height:550
});
$('#MyButton').click(openDialog);
});
此代码初始化对话框,但不显示它。单击MyButton时,openDialog函数将打开对话框
var openDialog = function(){
$('#dialog').load('loadurl.php');//load with AJAX
//optionally change options each time it is clicked
$('#dialog').dialog('option', 'buttons',{
"Cancel":function(){
$('#dialog').dialog('close');
}
});
//actually open the dialog
$('#dialog').dialog('open');
};
Scott Gonzalez(jQuery UI团队的成员)在最近的一篇博文中谈到了很多人在开始使用jQuery UI时遇到这个问题的原因:
摘录:
用户经常遇到的问题
对话是指他们试图
每次实例化一个新对话框
用户执行一些操作
(通常单击链接或
按钮)。这是可以理解的
错误是因为乍一看它
似乎是在一台计算机上调用.dialog()
元素是导致对话框
打开事实上,正在发生的是
正在创建新的对话框实例
创建,然后该实例
之后立即打开
实例化。原因是
对话框打开是因为对话框具有
自动打开选项,默认为
对。因此,当用户调用.dialog()时
对一个元素执行两次,第二次调用
已忽略,因为该对话框已关闭
已经在上面实例化了
元素
解决方案:
解决这个问题的简单方法是
使用
自动打开设置为false,然后调用
.dialog(“打开”)在事件处理程序中
$(文档).ready(函数(){
变量$dialog=$('')
.html('每次都会显示此对话框!')
.对话({
自动打开:错误,
标题:“基本对话框”
});
$('#opener')。单击(函数(){
$dialog.dialog('open');
});
});
作为对已接受答案的补充,我想补充一点,即在asp.net更新面板中使用此选项时需要注意。
如果单击该按钮,则将发生回发,弹出窗口将打开,但不会再次打开,因为发生了回发。因此,您应该确保用于打开弹出窗口的按钮不会回发。
即:
点击我
邮政编码或链接…:-(你用什么代码隐藏和显示对话框?有些代码会很棒。一般来说,不要忘记在关闭/关闭时确保没有导致任何错误。如果对话框在事件中初始化和显示,会发生什么情况?是否存在性能风险或只是不好的做法?不起作用,可能只是此对话框的设计不好?
$(document).ready(function() {
var $dialog = $('<div></div>')
.html('This dialog will show every time!')
.dialog({
autoOpen: false,
title: 'Basic Dialog'
});
$('#opener').click(function() {
$dialog.dialog('open');
});
});
<asp:LinkButton ID="btn1" runat="server" OnClientClick="return false;">Click me</asp:LinkButton>