我正在加载一个带有jQuery UI和加载功能的对话框页面:
$("#update_link").dialog({
modal: false,
height: 370,
width: 900,
title: 'עדכן קישור',
open: function () {
$(this).load("<?= site_url()?>/links/show_update?id="+rel+"&rand="+rand());
}
});
在对话框中有一个id为“add_time”的输入文本。在此输入中有一个日期选择器:
$(".float_form[rel='<?=$id;?>'] #add_time").datepicker({
showOn: "button",
buttonImage: "<?=base_url()?>/images/icons/new.png",
buttonImageOnly: true,
onClose: function(dateText, inst) { alert("die"); }
});
当我运行它时,它第一次正常工作。然后我关闭对话框并更改打开对话框的链接(使用Ajax)。如果我再次使用datepicker单击输入文本,我会在控制台上收到此错误:
未捕获的TypeError:无法设置未定义的属性“currentDay”
由于此错误,我无法点击日期选择器内的任何日期。我做错了什么?
抱歉我的英文不好,谢谢你:)
答案 0 :(得分:3)
我找到了一个解决方案:
您只需将id="add_time"
替换为class="add_time"
代码:
$(".add_time").datepicker();
答案 1 :(得分:2)
似乎你搞砸了datepiccker的破坏,这里是例子:
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<div id="dialog" style="display:none">
</div>
<button id="ds">dialog show</button>
<script>
$(function(){$('#ds').click(function() {
var datep = $('<input type="text" id="datep">');
datep.datepicker();
var dlg = $('#dialog').dialog({
modal: false,
open: function() {
var e = $(this);
e.html('');
e.append(datep);
console.log(datep);
},
close: function() {
datep.datepicker("destroy");
}
});
});
});
</script>
道德:在关闭对话时使用desroy,而不是使用datepicker。