在Fullcalendar jQuery插件中处理dblclick

ada*_*orp 11 jquery fullcalendar

我知道之前已经问过这个问题,但从那时起已经发布了几个新版本.

是否可以处理dblclick事件以在日历中创建新约会而无需修改fullcalendar.js文件?与我的其他调整一起在单独的文件中处理此扩展会很棒.

提前致谢!

/亚当

Jua*_*les 28

Adam的帖子位于https://code.google.com/p/fullcalendar/issues/detail?id=231,使用此解决方案.

在任何可能的情况下,我都希望将事情排除在fullcalendar的核心之外,让人们通过api来完成它们.我将eventClick/eventMouseover/eventMouseout作为核心的一部分的唯一原因是b/c它们涉及一些特殊情况,例如与jquery ui拖动和调整大小冲突,所以我需要做一些检查这些类的事情.

我认为附加事件处理程序(如dblclick)的最佳方法是通过eventRender,如下所示:

$('#calendar').fullCalendar({
   eventRender: function(event, element) {
      element.bind('dblclick', function() {
         alert('double click!');
      });
   }
})
Run Code Online (Sandbox Code Playgroud)

如果您有不同的感受,请告诉我.谢谢

我有最新的更新,这对我很有用.


小智 9

我遇到了同样的问题并且不想弄乱核心,所以我在dayClick回调中编写了双击逻辑.

dayClick:function( date, allDay, jsEvent, view ) {
            var singleClick = date.toUTCString();

            if(doubleClick==singleClick){
                console.log('Double-click!');
                doubleClick = null;
            }else{
                doubleClick=date.toUTCString();
                clearInterval(clickTimer);
                clickTimer = setInterval(function(){
                    doubleClick = null;
                    clearInterval(clickTimer);
                }, 500);
            }
        }
Run Code Online (Sandbox Code Playgroud)

clickTimerdoubleClick在调用之前声明初始化日历.


Mic*_*res 8

只是为了补充Juan Gonzales的答案:

$("#calendar").fullCalendar({
    dayRender: function(date, element, view){
        element.bind('dblclick', function() {
            alert('double click!');
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

此代码将为dblclick整个"day"事件创建事件.

资源


Sid*_*Sid 5

以下代码显示了事件和日期的双击事件。 对于一天,您需要双击日期单元格的下侧(下半部分)。我不知道背后的原因

 $('#fullcalendar').fullCalendar({
        header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay',
      },
      events: this.EventList,
      defaultView: 'month',
      editable: true,
      //for event double click
      eventRender:function(event,element){
        element.bind('dblclick',function(){
          alert('double click event')
        });
      },
      //for day double click
      dayRender:function(date,cell)
      {
        cell.bind('dblclick',function(){
          alert(date)
        })
      }
    }) 
Run Code Online (Sandbox Code Playgroud)