回答
斯科特(的jQuery UI的团队)冈萨雷斯谈到人的原因很多有这个问题在最近的一篇博客的时候开始使用jQuery用户界面:http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/
的摘录:
用户经常遇到 与对话框的问题是,他们尝试 每次实例化一个新的对话框 用户执行一些操作 (通常点击al墨水或按钮)。这是一个可以理解的 错误,因为乍一看它 看起来像调用.dialog() 元素是导致对话框 打开的原因。实际上,发生的事情是 ,即新创建的对话实例为 ,然后在 实例化后立即打开该实例 。 对话框打开的原因是因为对话框有 autoOpen选项,默认为 为true。因此,当用户在一个元素上调用.dialog() 两次时,第二个调用 将被忽略,因为该对话框已经在该元素上实例化了 。
解决方案:
简单的解决这个问题是 实例与 对话框的AutoOpen设置为false,然后调用 .dialog在事件处理程序(“公开”)。
$(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');
});
});
如果对话框已初始化并显示在事件中,会发生什么情况?是否存在性能风险或仅仅是不好的做法? – 2015-06-17 00:08:05
不起作用,也许只是这个对话框的糟糕设计? – jpganz18 2017-06-13 16:06:07
你使用的是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');
};
作为除了公认的答案我想补充一点,你需要注意的一个asp.net的UpdatePanel使用这个时候。 如果您单击该按钮,则会发生回发,弹出窗口将打开,但由于发生回发而不会再次打开。所以你应该确保你用来打开弹出窗口的按钮不会回发。 即:?
<asp:LinkButton ID="btn1" runat="server" OnClientClick="return false;">Click me</asp:LinkButton>
- 1. jQuery UI对话框只打开一次
- 2. jQuery UI对话框仅打开一次
- 3. jquery对话框只能打开一次
- 4. jQuery对话框只会打开一次
- 5. jQuery UI对话框打开多次MVC4
- 6. jQuery UI对话框打开
- 7. jQuery ui对话框只显示一次
- 8. jQuery UI的对话框打开回调执行只有一次,但我想对话框打开
- 9. jQuery的对话框只开一次
- 10. 重开装的jQuery的div对话框打开,只有一次
- 11. jQuery对话框打开(不止一次)?
- 12. JQuery UI对话框在第一次尝试时不会打开
- 13. jQuery UI对话框 - 不会打开第一次
- 14. 的Rails + jQuery UI的对话框仅打开一次
- 15. UI对话框打开多次
- 16. Jquery对话框关闭按钮不关闭;对话框只能打开一次
- 17. jquery的用户界面对话框,只能打开一次
- 18. jquery对话框应该每个用户只能打开一次
- 19. 在jQuery UI对话框中打开CRM
- 20. 用mvc.net打开对话框jquery ui
- 21. jquery ui对话框将不会打开
- 22. Jquery UI对话框自动打开
- 23. jQuery UI的对话框不打开
- 24. 从itemcommand打开jquery ui对话框
- 25. 用JQuery UI打开对话框
- 26. jquery ui对话框不能打开
- 27. jQuery UI对话框将不会打开
- 28. jquery-ui对话框不立即打开
- 29. 点击一次打开对话框
- 30. jquery对话框 - 页面上的多个对话框,一次只打开一个对话框
的邮递区号或链接... :-( – beggs 2009-11-09 15:57:39
你在使用隐藏和显示该对话框 – 2009-11-09 15:57:48
一些代码将是真棒一般,不要忘了代码,以确保您在关闭时不会导致任何错误 – helloandre 2009-11-09 15:57:56