簡體   English   中英

如何在拖動事件時禁用popover?

[英]How to disable popover when I dragging event?

當我開始在fullcalendar中拖動事件並再次停止拖動show popover后,如何隱藏popover元素?

我有這個代碼:

eventRender: function(event, elementos, resource, view) {
        var start = $.fullCalendar.formatDate(event.start, "DD-MM-Y HH:mm");
        var end = $.fullCalendar.formatDate(event.end, "DD-MM-Y HH:mm");
        elementos.popover({
          title: start + ' — ' + end,
          content: event.title,
          trigger: 'hover',
          placement: 'top',
          container: 'body'
        });
      }

當我想調整大小或拖動事件時:

在此輸入圖像描述

謝謝!

我有一個類似的問題。 基於Taha代碼,這里有一個隨時可用的代碼,供那些想知道如何使用Fullcalendar執行此操作的人使用:

eventDragStart: function( event, jsEvent, ui, view ) {
  window.eventScrolling = true;
},
eventDragStop: function( event, jsEvent, ui, view ) {
  window.eventScrolling = false;
},
eventRender: (event, elementos, resource, view) {
    if(window.eventScrolling) return;
    var start = $.fullCalendar.formatDate(event.start, "DD-MM-Y HH:mm");
    var end = $.fullCalendar.formatDate(event.end, "DD-MM-Y HH:mm");
    elementos.popover({
      title: start + ' — ' + end,
      content: event.title,
      trigger: 'hover',
      placement: 'top',
      container: 'body'
    });
  }
},
eventResize: function(event, delta, revertFunc) {
  $(".popover").remove();
},

您可以向彈出框不應呈現的滾動事件添加標記。

偽代碼:

$("element").on("dragstart", function(){
   window.eventScrolling = true;
});

$("element").on("dragend", function(){
   window.eventScrolling = false;
});
eventRender: function(event, elementos, resource, view) {
    if(window.eventScrolling) return;
    var start = $.fullCalendar.formatDate(event.start, "DD-MM-Y HH:mm");
    var end = $.fullCalendar.formatDate(event.end, "DD-MM-Y HH:mm");
    elementos.popover({
        title: start + ' — ' + end,
        content: event.title,
        trigger: 'hover',
        placement: 'top',
        container: 'body'
    }
});

您應該使用eventAfterRender而不是eventRender函數來實現所需的結果。 所以你的代碼看起來像這樣:

  eventAfterRender: function(event, elementos, resource, view) {
    // code goes here
  }

這是有效的,因為在拖動時不斷調用eventRender ,因為事件不斷被“捕捉”到單元格中(在非月視圖中),因此最終會創建所有彈出窗口,而eventAfterRender在事件放置在日歷上后觸發在最后的位置。

您可以在此codepen中看到它的運行情況

你只需要把$(“。Popover”)。 去掉 (); 在element.popover之前。 像這樣。

eventRender: function(event, element, resource, view) {

       $(".popover").remove();

var start = $.fullCalendar.formatDate(event.start, "DD-MM-Y HH:mm");
var end = $.fullCalendar.formatDate(event.end, "DD-MM-Y HH:mm");
element.popover({
    title: start + ' — ' + end,
    content: event.title,
    trigger: 'hover',
    placement: 'top',
    container: 'body',
      live: true,
            html: true,
            placement: 'above'
});
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM