更改月份

时间:2017-01-04 14:17:54

标签: jquery fullcalendar

我遇到了完整日历的问题。 我不会在更改月份后点击事件。

以下是我创建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获取附加信息点击标签它工作正常,但当我更改月份点击事件不起作用。

请帮我解决这个问题。

由于

1 个答案:

答案 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文档。