如何将多个项目添加到 Kendo 调度程序中的上下文菜单?
How to add multiple items to context menu in Kendo Scheduler?
"kendoContextMenu" 是 Telerik 套装的控制之一。我正在尝试使用 Kendo 调度程序控件附加它。
下面是渲染调度器和菜单的代码
Part of it taken from Kendo sample site
<div id="example">
<div id="scheduler"></div>
<ul id="contextMenu"></ul>
</div>
这是上下文菜单初始化
$("#contextMenu").kendoContextMenu({
filter: ".k-event, .k-scheduler-table td",
target: "#scheduler",
select: function(e) {
var target = $(e.target);
if (target.hasClass("k-event")) {
var occurrenceByUid = scheduler.occurrenceByUid(target.data("uid"));
} else {
var slot = scheduler.slotByElement(target);
}
},
open: function(e) {
var menu = e.sender;
var text = $(e.target).hasClass("k-event") ? "Edit Title" : "Block";
menu.remove(".myClass");
menu.append([{text: text, cssClass: "myClass" }]);
}
});
});
上面的代码只在上下文菜单中添加了一项,点击事件直接触发。我想在上下文菜单中有多个项目,每个项目都应该有自己的事件,以便我可以在单击时使用它们。
下图显示了右键单击行为,它在菜单中仅显示 阻止
我正在尝试获取如下菜单 - 它有多个项目并有自己的点击事件
我正在尝试像下面那样附加文本,但这似乎是错误的做法,而且它不能有单独的点击事件。
open: function(e) {
var menu = e.sender;
var text = $(e.target).hasClass("k-event") ? "Edit event" : "Add Event";
text = text + "|" + "Cancel"
menu.remove(".myClass");
menu.append([{text: text, cssClass: "myClass" }]);
}
请帮忙
恐怕你附加错了。通过连接 "| Cancel"
,您并不是在添加新项目,而是在现有项目中添加文本。
尝试创建一个新对象并附加 append()
:
menu.append([{text: "Cancel", cssClass: "cancel-opt" }]);
然后通过 select
事件中的 class 检查:
if (target.hasClass("cancel-opt"))
"kendoContextMenu" 是 Telerik 套装的控制之一。我正在尝试使用 Kendo 调度程序控件附加它。
下面是渲染调度器和菜单的代码
Part of it taken from Kendo sample site
<div id="example">
<div id="scheduler"></div>
<ul id="contextMenu"></ul>
</div>
这是上下文菜单初始化
$("#contextMenu").kendoContextMenu({
filter: ".k-event, .k-scheduler-table td",
target: "#scheduler",
select: function(e) {
var target = $(e.target);
if (target.hasClass("k-event")) {
var occurrenceByUid = scheduler.occurrenceByUid(target.data("uid"));
} else {
var slot = scheduler.slotByElement(target);
}
},
open: function(e) {
var menu = e.sender;
var text = $(e.target).hasClass("k-event") ? "Edit Title" : "Block";
menu.remove(".myClass");
menu.append([{text: text, cssClass: "myClass" }]);
}
});
});
上面的代码只在上下文菜单中添加了一项,点击事件直接触发。我想在上下文菜单中有多个项目,每个项目都应该有自己的事件,以便我可以在单击时使用它们。
下图显示了右键单击行为,它在菜单中仅显示 阻止
我正在尝试获取如下菜单 - 它有多个项目并有自己的点击事件
我正在尝试像下面那样附加文本,但这似乎是错误的做法,而且它不能有单独的点击事件。
open: function(e) {
var menu = e.sender;
var text = $(e.target).hasClass("k-event") ? "Edit event" : "Add Event";
text = text + "|" + "Cancel"
menu.remove(".myClass");
menu.append([{text: text, cssClass: "myClass" }]);
}
请帮忙
恐怕你附加错了。通过连接 "| Cancel"
,您并不是在添加新项目,而是在现有项目中添加文本。
尝试创建一个新对象并附加 append()
:
menu.append([{text: "Cancel", cssClass: "cancel-opt" }]);
然后通过 select
事件中的 class 检查:
if (target.hasClass("cancel-opt"))