我正在使用 Adam Shaw 的FullCalendar
控件和 jQuery。我想为事件和日子添加一个上下文菜单。我可以通过使用Martin Wendt 的 Context Menu control来实现。我在事件上注册菜单的代码如下所示:
$('#calendar').fullCalendar({
// Other arguments
eventRender: function (event, element) {
var originalClass = element[0].className;
element[0].className = originalClass + ' hasmenu';
},
dayRender: function (day, cell) {
var originalClass = cell[0].className;
cell[0].className = originalClass + ' hasmenu';
});
});
我本质上是hasmenu
在日历中为每个事件和日期添加一个类。
$(document).contextmenu({
delegate: ".hasmenu",
preventContextMenuForPopup: true,
preventSelect: true,
menu: [
{title: "Cut", cmd: "cut", uiIcon: "ui-icon-scissors"},
{title: "Copy", cmd: "copy", uiIcon: "ui-icon-copy"},
{title: "Paste", cmd: "paste", uiIcon: "ui-icon-clipboard", disabled: true },
],
select: function(event, ui) {
// Logic for handing the selected option
},
beforeOpen: function(event, ui) {
// Things to happen right before the menu pops up
}
});
这样做的问题是菜单出现在日历控件的后面。我相信这是因为日历事件有一些其他的课程分配给他们,添加一个hasmenu
课程会搞乱这些。当我在 VS 中设置断点时,它表示该事件具有以下类:
"fc-event fc-event-hori fc-event-draggable fc-event-start fc-event-end hasmenu"
这就是它在页面上的外观:
我尝试将事件类临时设置为仅hasmenu
在弹出窗口打开时,但这显然完全改变了视图。有没有办法强制菜单位于所有其他元素之上?有没有“带到前面”的方法?任何帮助表示赞赏。