当用户点击月视图中的日期链接时,我希望日视图显示更多信息。所以当他们点击这个链接时:
我希望它能显示出来:
基本上,我想将订单描述附加到订单号。我已经在Web API调用返回的事件详细信息中有订单描述,并且我将该描述用作月视图上的工具提示。以下是作为我的日历定义一部分的eventRender和viewRender方法:
eventRender: function (event, element) {
event.title = event.OrderNumber;
element.find('.fc-title').append('<a href="...' + title="' + event.Description + '">' + event.OrderNumber + '</a>');
}
, viewRender: function (view, element) {
if (view.name == 'basicDay') {
element.find('.fc-title').append('<a href="...' title="' + event.Description + '">' + event.Description + '</a>');
}
}
在viewRender中,我试图复制在eventRender中有效的内容(更改&#34; .fc-title&#34;类),但这并没有奏效。在调试时,评估传递给viewRender方法(视图和元素)的对象并没有向我显示我需要的任何有用属性,但也许它们正在向我隐藏。
答案 0 :(得分:0)
再一次,发布我的问题的魔力帮助解决了这个问题。我发现日历声明中的“eventAfterAllRender”事件是关键:
$('#calendar').fullCalendar({
eventRender: function (event, element) { ... },
viewRender: function (view, element) { ... },
eventAfterAllRender: function (view) {
if ($('.fc-basicDay-view').length > 0) {
$('.cl').each(function (i, item) {
var title = item.title;
item.innerText = item.innerText + ' - ' + item.title;
$(this).css('font-size', '14px');
});
}
}
});
我原本试图将代码放在“eventRender”事件中,但是通过开发人员工具评估页面,我注意到该页面还没有完成渲染,所以我试图修改的HTML元素尚未创建。
将代码置于“eventAfterAllRender”事件中,因为日历已完成渲染,然后我可以查找链接标记并对其进行修改。在我的代码中,我检查是否存在'fc-basicDay-view'类,它是在我点击月视图上的日期链接(在我的原始帖子中)并且呈现日视图之后。
每个链接类都附加一个名为“cl”的类。这是我在最初创建链接时在“eventRender”事件中手动附加的类(这是对原始帖子的更改):
element.find('.fc-title').append('<a href="...' + title="' + event.Description + '" class="cl">' + event.OrderNumber + '</a>');
“eventAfterAllRender”事件中的代码然后遍历所有元素,从每个链接(我也在“eventRender”事件中分配)中提取“title”属性,并将其附加到innerText属性。