我最近开始在我的一个intranet站点上使用wdClendar jquery插件。它工作得很好,但有几个请求我似乎无法解决。我将日历默认设置为显示月份视图。当页面第一次加载时,日期范围应该在的位置显示为“加载”。我已经尝试了几种方法来强制它刷新,但直到我更改月份或更改视图,它才会刷新。这是第一个问题,甚至演示站点也表现出相同的行为。
Loading http://lh6.ggpht.com/_HzVXTmY0YG8/THKs5Gk_WRI/AAAAAAAAAFY/h10ozDSY_OE/s800/loading.PNG
我一直在使用Firefox/Firebug来调试javascript。如果我在var p = $("#gridcontainer").bcalendar(op).BcalGetOp();的代码中设置了一个断点并逐步执行它,它就可以工作。更新日期范围显示。但不是在页面的常规显示上,并且当页面加载时没有错误。在页面完全加载之前,似乎有一段代码正在运行。这是一段代码片段。
$(document).ready(function() {
$("#content_table").width("95%");
var view="month";
var DATA_FEED_URL = "/media/js/wdCalendar/php/datafeed.php";
var op = {
view: view,
theme:3,
weekstartday:0,
showday: new Date(),
EditCmdhandler:Edit,
DeleteCmdhandler:Delete,
ViewCmdhandler:View,
onWeekOrMonthToDay:wtd,
onBeforeRequestData: cal_beforerequest,
onAfterRequestData: cal_afterrequest,
onRequestDataError: cal_onerror,
autoload:true,
url: DATA_FEED_URL + "?method=list",
quickAddUrl: DATA_FEED_URL + "?method=add",
quickUpdateUrl: DATA_FEED_URL + "?method=update",
quickDeleteUrl: DATA_FEED_URL + "?method=remove"
};
var $dv = $("#calhead");
var _MH = document.documentElement.clientHeight;
var dvH = $dv.height() + 2;
op.height = _MH - dvH;
op.eventItems =[];
var p = $("#gridcontainer").bcalendar(op).BcalGetOp();
if (p && p.datestrshow) {
$("#txtdatetimeshow").text(p.datestrshow);
}
...});最后4行应该是更改显示的内容。其他所有内容(...)文件中有函数和jQuery选择器。
第二个问题是,我的客户希望在月份视图中显示月份名称,而不是日期范围。我对javascript的使用还不够先进,不能自己做这样的改变。
Loading http://lh6.ggpht.com/_HzVXTmY0YG8/THKs5ZTCdBI/AAAAAAAAAFc/sFBC8GLiqFY/s800/range.PNG
任何帮助都将不胜感激。
发布于 2010-10-28 20:47:26
我认为这可以用下面的方法解决你的problems...replace,你的cal_afterrequest方法。
干杯,
麦克
function cal_afterrequest(type)
{
switch(type)
{
case 1:
$("#loadingpannel").hide();
var theMonths= new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
//$("#txtdatetimeshow").text(this.datestrshow);
$("#txtdatetimeshow").text(theMonths[this.showday.getMonth()] + " " + this.showday.getFullYear());
break;
case 2:
case 3:
case 4:
$("#loadingpannel").html("Success!");
window.setTimeout(function(){ $("#loadingpannel").hide();},2000);
break;
}
}发布于 2015-01-12 05:56:54
我还遇到了一个问题,发现问题出在ajax文件中
"datafeed.php“
更改为此
case "week":
//suppose first day of a week is monday
//$monday = date("d", $phpTime) - date('N', $phpTime) + 1;
if (date('N', $phpTime) == 7) {
$sunday = date("d", $phpTime);
} else {
$sunday = date("d", $phpTime) - date('N', $phpTime);
}
//echo date('N', $phpTime);
$st = mktime(0,0,0,date("m", $phpTime), $sunday, date("Y", $phpTime));
$et = mktime(0,0,-1,date("m", $phpTime), $sunday+7, date("Y", $phpTime));
break;https://stackoverflow.com/questions/3550104
复制相似问题