带完整日历的上下文菜单,在日历和上下文菜单之间传递数据

时间:2015-01-15 09:58:04

标签: javascript jquery fullcalendar contextmenu

我正在使用jquery上下文菜单,使用Adam Shaw的完整日历(在事件右键单击时)。 它运行得很好,但是,如何将事件UI上显示的数据以外的数据传递到上下文菜单?我试图通过.targetdata传递信息,但没有成功。请帮忙!

$('#calendarView').fullCalendar({
    eventRender: function(event, element) {
        var originalClass = element[0].className;
        element[0].className = originalClass + ' hasmenu';
    },
    eventClick: function(calEvent, jsEvent, view) {
        //need to pass calEvent.ID to context menu                   
    },
});

$('#calendarView').contextmenu({
    delegate: ".hasmenu",
    preventContextMenuForPopup: true,
    preventSelect: true,
    menu: [{
        title: "Edit Booking",
        cmd: "Edit",
        action: function(event, ui) {}
    }, {
        title: "Delete Booking",
        cmd: "Delete",
        action: function(event, ui) {
            //need to pick up calEvent.ID here
        }
    }],
    select: function(event, ui) {
        // Logic for handing the selected option
    },
    beforeOpen: function(event, ui) {
        ui.menu.zIndex($(event.target).zIndex() + 1);
    },
});

1 个答案:

答案 0 :(得分:2)

所以我做的是:

  1. 在eventRender:function ...我会做
  2. element.attr('data-event-id', event.id); element.addClass('context-class');

    然后在文档就绪函数中将上下文菜单附加到所有.context-class元素。

    在上下文菜单代码中,您可以获取元素,并可以根据需要提取“数据”属性