【发布时间】:2014-04-12 05:07:50
【问题描述】:
我正在创建一个管理客人和登记入住的酒店管理系统。
我的模态响应时间有问题。
我在模态框内有一个取消按钮,它关闭了模态框但不会重新加载页面。这是我在取消按钮中得到的:
$("#cancel").click(function(event) {
event.preventDefault();
jQuery(".ui-dialog").dialog().dialog('close');
jQuery(".ui-widget-overlay").dialog().dialog('close');
});
问题来了: 当模态出现时(通过单击另一个按钮),我单击取消并执行上面的代码。我这样做了很多次(打开模式并取消)并且页面变得无响应。在执行 5 次以上之后,您必须等待几分钟才能关闭模式。你甚至不能关闭浏览器的标签页。
非常欢迎任何想法。谢谢。
PS。 我把系统上传到网上给你看。 http://greenenergiesllc.com/temp
Login: joel
Password: 1234
创建我的一些模态的 PHP 文件:https://www.dropbox.com/s/azi51w0pzp69kgh/checkin.php
关于我如何创建模态的代码 sn-p:
jQuery( "#ex4").dialog({
height: 'auto',
width: 450,
modal: true,
closeOnEscape: false,
open: function(event, ui) {
jQuery(this).parent().children().children('.ui-dialog-titlebar-close').hide();
}, position: ["center", 100],
resizable: false
});
编辑:
这是我到目前为止所做的。我通过在close调用后添加.remove解决了DOM创建太多对象的问题。
$("#cancel").click(function(event) {
event.preventDefault();
jQuery(".ui-dialog").dialog().dialog('close').remove();
jQuery(".ui-widget-overlay").dialog().dialog('close').remove;
});
但是,第一次关闭模态框后,第二次无法打开,我得到了这个错误。 --> 更新:使用 remove 不会在调用时恢复模态。我现在完全困惑该怎么办。我需要在使用 .remove() 调用时删除这些 DOM 元素,但我需要在调用时将它们带回来。
Uncaught TypeError: Cannot call method '_focusTabbable' of undefined
【问题讨论】:
标签: javascript jquery performance modal-dialog