我在我的项目中使用jquery datepicker。我使用ajax访问数据库,以检索每个月更改时需要突出显示的日期。这是使用onChangeMonthYear:function(year,month,inst)和beforeShowDay:function(dateToShow)事件完成的。日期正在被适当地突出显示,但我遇到的问题是,在前一天的活动中突出显示日期确实需要很长时间。我想在此指出,本地计算机上的访问时间非常快,并且已经消除了服务器的响应时间导致突出显示延迟的事实。
我也试过使用持续时间:'快',但这也没有帮助。
1.如何增加日期的显示时间?或
2.我怎么可能无法使用日历,这样在显示日期之前,用户无法浏览其他月份。
答案 0 :(得分:1)
您应该可以使用disable
选项禁用/启用日期选择器:
$('.selector').datepicker({
onChangeMonthYear: function(year, month, inst) {
$(this).datepicker( "option", "disabled", true);
},
beforeShowDay: function(date) {
$(this).datepicker( "option", "disabled", false);
}
});
答案 1 :(得分:1)
我想质疑你对此的看法,但我可能错了,因为我们没有所有的事实。但是从我们得到的东西:
方法1.在没有任何ajax的情况下加载服务器端的所有日期,因为它最好只加载一次,而不是多次加载。
方法2.如果1不可能用ajax加载所有日期,然后在ajax回调中激活日期选择器。
方法3.如果有大量日期,您可以批量处理,至少确保您提前几个月。
答案 2 :(得分:1)
没有代码就有点困难,但请尝试以下方法:
在CSS文件中:#calendarContainer {display:none;}
$(function(){$('#calendarContainer').show();});
//Will only show when document is ready.
如果即使页面已加载也会发生日期延迟:
在CSS文件中:#calendarContainer {display:none;}
$(function(){
var sI = setInterval(function() {
if ($('.dateHighlightContainer .dates').hasClass('highlight'))
{
$('#calendarContainer').show();
clearInterval(sI);
}
}, 1000);
});
//Check each second - Will stop and display calendar once it finds the class highlight
查看我的完整示例以获取更多详细信息:http://jsfiddle.net/Jeu5q/
答案 3 :(得分:1)
您的延迟问题必须与您的ajax方法有关。 这是工作example。我没有注意到预定义日期的任何延迟问题。
// Highlighted Days
var dayList = [1, 3, 5, 7, 9, 11 , 13 , 15 , 17 , 19 , 21 , 23 , 25 , 27 ];
var monthList = ["Jan", "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov","Dec" ];
function createDays(dayList, month, year) {
var dateArray = new Array();
$.each(dayList, function(i, value) {
dateArray.push(new Date(month.concat(' ', value, ', ', year)));
});
return dateArray;
}
$(document).ready(function() {
$dateArray = createDays(dayList, "Jul", "2011");
$('#datepicker').datepicker({
beforeShowDay: function(_date) {
$highLightDay = false;
$.each($dateArray , function(i, date) {
if (date.valueOf() == _date.valueOf()) {
$highLightDay = true;
}
});
if($highLightDay)
return [true, "ui-state-active" ,"Event-".concat(_date)];
return [true, "", ""];
},
onChangeMonthYear: function(year, month, inst) {
$dateArray = createDays(dayList, monthList[month-1], year);
}
});
});
答案 4 :(得分:0)
如果您的calendar / classes / tc_calendar.php第9行显示...
$WEB_SUPPORT = "http://www.triconsole.com/php/calendar_datepicker.php";
延迟是一个超时,因此您需要将第18行更改为...
public $check_new_version = false;
日期选择器恢复正常。