我正在努力检索单击多天(期间)事件 (eventClick) 时单击的日期。
单击背景单元格时,很容易:
function dayClick(date, jsEvent, view) {
//todo: store related day
$scope.selectedDay = date;
}
但是当点击一个事件(在一段时间内)时,我无法检索到用户在哪一天。 (我需要根据后台日期执行不同的操作):
function alertEventOnClick(event, jsEvent, view) {
// "event" stores only start and end date without any reference to the current day
// "jsEvent" retrieve the "td" element but fullcalendar HTML structure is complex and it's impossible to go-up to find the day-cell
// $scope.selectedDay = ??
};
我尝试玩“可选择”但“eventClick”JS事件不会传播,也不会“选择”这一天
谢谢
最佳答案
如果您根本不需要捕获事件点击,则可以使用 pointer-events: none;
向所有事件添加一个类
JSFiddle Demo
eventRender: function (event, element) {
$(element).addClass('clickThrough');
},
IE8
布莱。有一种 hacky 方法可以在 IE8 上模拟
pointer-events: none;
,但在尝试实现它时,我发现了一种更简单的方法来实现目标。 (模拟的 pointer-events
hack 描述为 here 。)获取光标处的日期:
JSFiddle Demo
eventClick: function (calEvent, jsEvent, view) {
var topLayer = $(jsEvent.currentTarget).closest("tbody");
topLayer.hide(); //hide the entire event layer (makes it work with multiple events)
var dayElement = document.elementFromPoint(jsEvent.pageX, jsEvent.pageY); //get the element under the cursor (should be a day cell)
topLayer.show();
alert($(dayElement).data("date"));
}
更好的 IE8 解决方法
(这似乎不起作用)
所以事实证明, anchor 标签有更好的
pointer-events: none;
解决方法。 https://stackoverflow.com/a/18118092/728393您只需将属性
disabled="disabled"
添加到 <a>
中,就可以点击它。JSFiddle Demo
eventRender: function (event, element) {
$(element).addClass('clickThrough').attr("disabled","disabled"); //disabled attribute is a IE workaround for pointer-events
},
关于javascript - Fullcalendar (v2.x) 从 eventClick 获取日单元格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28115122/