我有一个带有链接的静态页面,该链接打开一个加载子页面的模式对话框。子页面包括带有Datepicker小部件的输入。
当我第一次打开对话框时,子页面会加载,并且Datepicker会出现并正常运行。
当我关闭对话框并再次打开它时,将加载子页面,但不会显示Datepicker,并且没有报告的错误。我认为这可能是因为Dialog在关闭时会留下残余物,因此重新打开它会再次加载到子页面中,但Datepicker会忽略重复的实例。
对话框的设置/调用很简单:
$("a#Popup").click(function() {
var subpage = $("div#SubPage")
.dialog({ autoOpen: false, width: 480, minHeight: 280, modal: true });
var addr = $("a#Popup").attr('href');
subpage.load(addr);
subpage.dialog('open');
return false;
});
是否有适当的方法可以关闭对话框,以便将其干净地删除并仍可以再次打开?我尝试使用destroy(),但是Dialog再次运行时遇到问题。
我确实注意到,由于Dialog将其生成的代码放在页面的form
标记之后,因此可以使用以下命令将其全部删除:
$("form").nextAll().remove();
所以我可以在Dialog的close
事件中尝试该事件,尽管它很骇人。
答案 0 :(得分:0)
jQuery的DatePicker有一些奇怪的怪癖。 Fit.UI(内部使用jQuery的DatePicker)对此进行了补偿,并在移动设备上提供了本机体验,添加了各种额外功能,并提供了传统的面向对象的API。因此,如果您可以使用非“纯jQuery”解决方案,请考虑以下问题:https://fitui.org/Control-DatePicker.html
(我有偏见-我使用Fit.UI)
如果要使用更新的软件包,则应将其安装在npm上,或者从GitHub下载最新版本。