单击div处理程序不适用于JQuery完整日历

时间:2015-05-09 14:50:19

标签: javascript jquery html css

这是我的handler

$("div.fc-content").on('click', function (e) {
        var id = $(this).data('id');
        $.ajax({
            url: '/VacationRequest/Edit/' + id,
            cache: false
        }).done(function (data) {
            $("#edit-id").val(data.Id);
            $("#startDate-edit").val(data.startDate);
            $("#endDate-edit").val(data.endDate);
            $("#comment-edit").val(data.comment);
            $("#vacationTypes-edit").val(data.vacationType);
            $('#edit-vacation-modal-window').modal('show');
        });
    });

这是Jquery完整日历初始化的一部分:

function InitCalendar() {
    $('#calendar').fullCalendar({
        events: {
            url: '/vacation/SchedulesGet',
            type: 'POST',
            data: {
                title: 'title',                      
                id : 'id',
                start: new Date('start'),
                end: new Date('end'),
            },
            error: function () {
                alert('there was an error while fetching events!');
            },
            color: 'yellow',
            textColor: 'black'
        },
        eventRender: function (event, element) {
            $($(element[0]).find('div.fc-content')[0]).attr('data-id', event.id);
        },

$("div.fc-content")块存在(我在js控制台中找到它)。但是,当我试图点击它时,什么也没发生。你能解释一下我做错了吗?

1 个答案:

答案 0 :(得分:1)

尝试使用委托事件处理程序,如下所示:

$('#calendar').on('click', 'div.fc-content', function (e) {

    ...

});

有关事件委派的更多信息:https://learn.jquery.com/events/event-delegation/

或者将您的onclick绑定在eventRender函数中:

$('#calendar').fullCalendar({
    ...
    eventRender: function (event, element) {

        element.click(function() {
            ...
        });
    }
});