因此,我最近使用jQuery contextMenu(http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/)向FullCalendar中的事件添加了上下文菜单。它的工作原理很漂亮,除了我的拖放功能停止正常工作之外,当您拖动事件并放开另一个日期时,事件日期没有更改,并且重定向到事件的URL。我做了一些检查,发现没有触发eventDrop,eventDragStart和eventClick。如果我注释掉上下文菜单,则一切正常。如果有人能弄清楚contextMenu为什么阻止触发fullCalendar回调,我将不胜感激,因为contextMenu完全适合我的需求。
contextMenu和事件回调的代码:

eventRender: function(event, element) {
    if (event.url.indexOf("https://www.google.com") != 0)
    {
      element.contextMenu({
        menu: "myMenu",
      },
      function(action, el) {
        if (action == "approve") {
          $.ajax({
            url: 'events/' + event.id,
            data: { 'event' : { 'status' : "Approved", } },
            type: "PUT",
          }),
          $('#calendar').fullCalendar('refetchEvents');
        } else if (action == "deny") {
          $.ajax({
            url: 'events/' + event.id,
            data: { 'event' : { 'status' : "Denied", } },
            type: "PUT",
          }),
          $('#calendar').fullCalendar('refetchEvents');
        } else if (action == "destroy") {
          if (confirm("Are you sure you want to delete this event?") ) {
            $.ajax({
                url: 'events/' + event.id,
                type: "DELETE",
            }),
            $('#calendar').fullCalendar('refetchEvents');
          }
        }
        else if (action == "edit") {
          window.location = 'events/' + event.id + '/edit'
        }
      }
      );
    }
  },

  eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc){
    updateEvent(event);
  },

  eventResize: function(event, dayDelta, minuteDelta, revertFunc){
      updateEvent(event);
  },

  eventClick: function(event) {
    if (event.url.indexOf("https://www.google.com") != 0) {
      $.facebox(function() {
        $.get('events/' + event.id,
          function(data) {
            $.facebox(data)
          }
        );
      })
      return false;
    }
    return false;
  }

最佳答案

好吧,因为似乎无法得到答复,所以我的解决方案是切换到其他上下文菜单插件(http://www.trendskitchens.co.nz/jquery/contextmenu/),该插件非常相似,并且没有导致完整日历出现任何问题。这不是解决该插件无法使用Full Calendar的任何问题的解决方法,而是可以使我的程序正常运行的解决方法。

关于jquery - contextMenu中断FullCalendar事件拖动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7044651/

10-13 09:32