我正在使用FullCalendar加载Google日历。我想将a
日历中某个类别的所有标签都转换为span
s。如果在页面加载后在Scratchpad中执行该代码,则我的代码效果很好,但是如果我将其放在JavaScript文件中的日历代码之后,则它不会执行任何操作(所有a
s仍然a
是s)。我的代码:
$(document).ready(function() {
$('#calendar').fullCalendar({
eventSources: [
'MY CALENDAR URL',
{
url: 'https://www.google.com/calendar/feeds/en.usa%23holiday%40group.v.calendar.google.com/public/basic',
className: 'holiday'
}
],
header: {
left: 'title',
center: '',
right: 'prev,next'
}
});
var aclass = $('a.holiday').attr('class');
var astyle = $('a.holiday').attr('style');
var atext = $('a.holiday').html();
$('a.holiday').replaceWith('<span style="'+ astyle +'" class="'+ aclass +'">'+ atext +'</span>');
});
JS错误控制台中仅显示两个错误:
[17:34:08.182]不建议使用getUserData()或setUserData()。请改用WeakMap或element.dataset。
[17:34:08.663]语法错误:不建议使用// @表示源地图URL编译指示。使用//#代替
他们似乎都与我的问题无关。一个位于jQuery中,另一个位于requestNotifier.js中。
FullCalendar提供了一些不错的钩子,您可以根据需要使用这些钩子来设置事件的样式。
一种完成工作的方法是,只需将当前代码移入eventAfterAllRender
,如下所示:
$('#calendar').fullCalendar({
[...]
eventAfterAllRender: function() {
var aclass = $('a.holiday').attr('class');
var astyle = $('a.holiday').attr('style');
var atext = $('a.holiday').html();
$('a.holiday').replaceWith('<span style="'+ astyle +'" class="'+ aclass +'">'+ atext +'</span>');
}
[...]
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句