我遇到了完整日历的问题。 我不会在更改月份后点击事件。
以下是我创建events ::
的脚本$(document).ready(function(){
var d = new Date();
$('#calendar').fullCalendar({
header: {
center: 'prev,today,next ',
left: 'title',
right: 'none'
},
defaultDate: d,
height: 'auto',
navLinks: false,
businessHours: true,
editable: true,
droppable: true,
dayNamesShort: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
eventSources: [
{
events: [
<?php
foreach ($locations as $location){
$select_event_time_loop = CFS()->get('select_event_time_loop',$location->ID);
echo "{
title : '" . get_the_title($location->ID)."',
className :['demo_check-" . $location->ID . "','event-back-color'],
start:'".CFS()->get('select_event_date',$location->ID)."',
},";
}
?>
],
}
]
});
$("a[class*='demo_check-']").on("click",function(){
$.each(this.className.split(' '), function( _, cn ) {
if( cn.indexOf('demo_check') === 0 ) { name = cn; return false; }
});
var class_name_split = name.split('-');
if(class_name_split[1]){
$(".page-overlay").css("display","block");
var data = '';
data = "class_name_split=" + class_name_split[1];
var path = "<?php echo get_bloginfo('template_url'); ?>/investment-ajax.php";
$.ajax({
type: "POST",
url: path,
data: data,
success: function(msg){
$('#time_get_ajax').html(msg);
$(".page-overlay").css("display","none");
}
});
}
});
});
因此,请建议我如何在更改月份后使用自定义点击事件。
我通过ajax获取附加信息点击标签它工作正常,但当我更改月份点击事件不起作用。
请帮我解决这个问题。
由于
答案 0 :(得分:2)
此问题并非特定于FullCalendar我不会认为 - 当您在页面上存在您未定位的元素时,这是一个问题将事件处理程序附加到选择器 - FullCalendar仅创建HTML以在选择月份的位置显示所选月份(以及其中的任何元素)。由于附加点击事件的代码在此时不会再次运行,因此新生成的元素即使与您的点击选择器匹配,也不会附加点击事件。
解决方案是使用委派事件。你可以替换:
$("a[class*='demo_check-']").on("click",function(){
与
$("#calendar").on("click", "a[class*='demo_check-']", function() {
这会将click事件附加到我们知道已存在的calendar
元素。然后,它可以处理与第二个选择器匹配的任何后代元素上的事件,无论它们是否在声明事件处理程序时都存在。
有关委派事件的更详细说明,请参阅http://api.jquery.com/on/上的jQuery文档。