gpt4 book ai didi

jquery - 外部触发FullCalendar的 'dayClick'方法?

转载 作者:行者123 更新时间:2023-12-03 22:41:18 25 4
gpt4 key购买 nike

我正在使用 Arshaw 的 FullCalendar,我希望在页面加载后模拟用户单击单元格。我正在尝试执行此操作,这样我就可以访问诸如 /Calendar/AddEvent 之类的 URL,并且日历将自动打开一个包含我的添加事件表单的对话框。

进行以下设置:( Fiddle here )

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)

感谢任何帮助。

最佳答案

我在我的用例中也遇到了这个问题,在深入研究 fullcalendar 源代码后,我发现这对我有用。您需要手动创建 mousedownmouseup 事件(从技术上讲,mouseup 是可选的,但您可以使用它来重置“单击”状态td),其中包含要“单击”的元素的 X 和 Y 位置坐标。同样重要的是 which 参数,需要将其设置为 1 以便 passes the isPrimaryMouseButton check .

考虑到这一点,代码将如下所示(请注意,我将 $('#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>
});

这是一个工作 fiddle : http://jsfiddle.net/vyxte25r/

关于jquery - 外部触发FullCalendar的 'dayClick'方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com