从外部触发FullCalendar的'dayClick'方法?
我正在使用Arshaw的FullCalendar,我正在模拟用户在页面加载后单击单元格。 我正在尝试这样做,因此我可能会转到诸如/Calendar/AddEvent
类的URL,并且日历会自动打开一个对话框,其中包含我的添加事件表单。
采取以下设置:(小提琴在这里)
HTML
<div>
<div id="calendar" data-year="2013" data-month="04" ></div>
</div>
jQuery的
$('#calendar').fullCalendar({
firstDay: 1,
selectable: true,
dayClick: function (start, allDay, jsEvent, view) {
alert('You clicked me!');
}
});
默认情况下,今天的单元格具有.fc-today
类,我试图通过执行以下操作来利用它:
$('.fc-today').trigger('click');
这似乎并不奏效。 无论如何,我可以做类似的事情
$('#calendar').fullCalendar('dayClick', date)
任何帮助表示赞赏。
我在我的用例中遇到了这个问题,这是我在完整日历源代码中进行挖掘后发现的作品。 您需要手动创建一个mousedown
和mouseup
事件(技术上mouseup
是可选的,但您可以使用它来重置td
的'clicked'状态),其中包含您想要的元素的X和Y位置的坐标“点击”。 同样重要的是which
参数需要设置为1
以便它通过isPrimaryMouseButton
检查。
考虑到这一点,代码看起来像这样(注意我改变$('#click')
使用mousedown
事件,以便它只运行一次):
$('#click').on('mousedown', function () {
var today = $('td.fc-today');
var down = new $.Event("mousedown");
var up = new $.Event("mouseup");
down.which = up.which = 1;
down.pageX = up.pageX = today.offset().left;
down.pageY = up.pageY = today.offset().top;
today.trigger(down);
today.trigger(up); //this is optional if you just want the dayClick event, but running this allows you to reset the 'clicked' state of the <td>
});
这是一个工作小提琴:http://jsfiddle.net/vyxte25r/
您可以使用fc-today
类在td
内的div
上使用jquery trigger
事件:
$('td.fc-today div').trigger('click');
修改凯文的答案有点为我工作。 我需要通过键盘访问dayClick事件。 使用dayRender方法将事件侦听器添加到每个单元格,可以让我们轻松处理每天的dayClick事件。 以下是我的成就:
dayRender: function(date, cell) {
// Allow keyboard to access and interact with calendar days
$(cell).attr("tabindex", "0").on("keydown", function(e) {
if (e.which === 32 || e.which === 13) {
var day = $(this);
var down = new $.Event("mousedown");
var up = new $.Event("mouseup");
var eventParams = { which: 1, pageX: day.offset().left, pageY: day.offset().top };
day.trigger($.extend(true, {}, down, eventParams));
day.trigger($.extend(true, {}, up, eventParams));
}
});
}
相关文档:https://fullcalendar.io/docs/display/dayRender/
链接地址: http://www.djcxy.com/p/70633.html上一篇: Externally triggering FullCalendar's 'dayClick' method?