我有以下问题。 我有一个jquery Datepicker,并希望在datepicker打开时显示一些其他信息。 当我使用Firebug的控制台执行以下操作时,它按预期工作
$("#ui-datepicker-div").append("additional text");
但是当我使用“onChangeMonthYear”时做同样的事情 - 选项:
$( "#datepicker" ).datepicker({
onChangeMonthYear: function(year, month, inst) {
$("#ui-datepicker-div").append("additional text");
}
});
它不会显示“附加文字”。
有什么建议吗?!
由于
答案 0 :(得分:2)
问题是当onChangeMonthYear
事件触发时,新日历表尚未创建。所以它附加了文本,但随后整个内容被新表替换。
使用超时附加文本,这将确保插件在插入之前重新创建内容。
var appendTimeout;
function appendText(text) {
clearTimeout(appendTimeout);
appendTimeout= setTimeout(function() {
$('#ui-datepicker-div').append('<div>' + text + '</div>');
}, 50);
}
$("#datepicker").datepicker({
beforeShow: function() {
appendText('initialAppendedText');
},
onChangeMonthYear: function(year, month, inst) {
appendText('whenMonthIsChanged');
}
});
我设置了超时10毫秒,但你可以增加一点这个值。
上的工作示例答案 1 :(得分:0)
'#ui-datepicker-div'由datepicker脚本创建,只要datepicked需要,它就可以刷新。附加的文本可以随时覆盖。 您应该在'#datepicker'元素之外创建自己的占位符,在其中附加文本,并使用CSS定位以使其看起来正确。