Javascript JS Full日历日&;事件双击函数

Javascript JS Full日历日&;事件双击函数,javascript,jquery,fullcalendar,Javascript,Jquery,Fullcalendar,我已经看到了几种处理这些操作的解决方案,但大多数都是针对V4之前的版本 我想添加处理每天双击和双击事件的函数 下面是我当前的设置,没有处理这些事件的部分 <div id="calendar"></div> <script src="./vendor/jquery/jquery.min.js"></script> <script src="./vendor/fullcalendar/core/main.min.js"></scrip

我已经看到了几种处理这些操作的解决方案,但大多数都是针对V4之前的版本

我想添加处理每天双击和双击事件的函数

下面是我当前的设置,没有处理这些事件的部分

<div id="calendar"></div>
<script src="./vendor/jquery/jquery.min.js"></script>
<script src="./vendor/fullcalendar/core/main.min.js"></script>
<script src="./vendor/fullcalendar/daygrid/main.min.js"></script>
<script src="./vendor/fullcalendar/timegrid/main.min.js"></script>
<script src="./vendor/fullcalendar/interaction/main.min.js"></script>
<script src="./vendor/fullcalendar/moment/main.min.js"></script>
<script>
    var time = new Date();
    var now = time.getHours()+":00:00";
      document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');

        var calendar = new FullCalendar.Calendar(calendarEl, {
            plugins: ['dayGrid','timeGrid','interaction'],

            height: 550,
            header:{
                left:   'title',
                center: '',
                right: 'today dayGridMonth timeGridWeek timeGridDay prev,next'
            },
            minTime: '05:00:00',
            maxTime: '22:00:00',
            nowIndicator: true,
            scrollTime: now,
            selectable: true,
            events: myEvents,
            slotEventOverlap: false,
            views:{
                dayGrid:{eventLimit:4},
            },
        });
        calendar.render();
      });
</script>
下一个是非功能性的:

        eventRender: function(event, element) {
             $(element).on({
                 click: function() {
                     // Handle click...
                 },
                 dblclick: function() {
                     // Handle double click...
                 }
             });
        },
我相信我的问题可能源于版本差异。我希望能够链接到V4中处理此功能的示例或其他解决方案

编辑1以便我当前可以使用以下内容对单击/双击某一天或事件发出警报。由于某些原因,
daydrender
功能仅在单击下半天时触发。我想在这方面得到帮助

        eventRender: function(info) {
          info.el.addEventListener('click', function() {
                clickCount++;
            if (clickCount === 1) {
                singleClickTimer = setTimeout(function() {
                    clickCount = 0;
                    alert('single click');
                }, 400);
            } else if (clickCount === 2) {
                clearTimeout(singleClickTimer);
                clickCount = 0;
                alert('double click');
            }          
          });
        },

        dayRender: function(info) {
            console.log(info.el);
          info.el.addEventListener('click', function() {
            clickCount++;
            if (clickCount === 1) {
                singleClickTimer = setTimeout(function() {
                    clickCount = 0;
                    alert('single click');
                }, 400);
            } else if (clickCount === 2) {
                clearTimeout(singleClickTimer);
                clickCount = 0;
                alert('double click');
            }          
          });
        },

eventRender函数接收包含事件和元素对象的info参数。 您需要使用以下内容:

eventRender: function(info) {
    info.el.addEventListener('click', function() {
        alert('click')
    });
}

请参阅我制作的JSFIDLE:

正确使用
info.el
…但是OP想要双击。fullCalendar已经处理了单击操作(请参阅),因此无需为此添加单独的处理程序。如果您更新它以显示如何添加双击处理程序,那么您将获得我的upvote:-)Javascript有一个dblclick事件处理程序,只需添加该处理程序即可。如果OP需要同时处理这两个问题,那么有很多简单的方法可以使用single click事件来检测双击。不管怎样,这两个方面都有一个丑陋的实现:我不是OP,你为什么告诉我?我的评论的目的是让你用一个更好的例子来更新你的答案:-)我如何改变这一点,以便每天都增加听众?另外,是否可以通过右键单击来执行类似操作?我尝试将上述内容更改为
daydrender
,但没有成功。与其纯粹依靠示例和猜测,为什么不阅读文档。它准确地告诉您回调中提供给您的信息以及格式。在v4中,提供了一个名为
info
(而不是将事件和元素作为单独的参数)的参数。
info
对象中包含元素。一旦找到该元素对象(根据Dario下面的回答),就可以以正常的方式将事件处理程序附加到它
eventRender: function(info) {
    info.el.addEventListener('click', function() {
        alert('click')
    });
}