Jquery 剑道上下文菜单选择特定项目的功能
我正在尝试使用kendoContextMenu小部件创建一个contextMenu。这是使用以下代码实现的Jquery 剑道上下文菜单选择特定项目的功能,jquery,kendo-ui,kendo-contextmenu,Jquery,Kendo Ui,Kendo Contextmenu,我正在尝试使用kendoContextMenu小部件创建一个contextMenu。这是使用以下代码实现的 $("#contextMenu").kendoContextMenu({ target: "#tree", filter: ".k-item", select: function(e) { alert("Selected"); }, dataSource: [ { text: "Item1"}, { text: "SubMenu1",
$("#contextMenu").kendoContextMenu({
target: "#tree",
filter: ".k-item",
select: function(e) {
alert("Selected");
},
dataSource:
[
{ text: "Item1"},
{
text: "SubMenu1",
items: [
{ text: "Item1" }
]
},
{
text: "SubMenu2",
items: [
{ text: "Item1" }
]
}
]
});
但是我想为单击项目时要执行的每个项目指定一个函数。我不想根据文本内容决定执行什么
我试图在数据源中添加一个单击项,但似乎不起作用。Kendo ContextMenu没有此功能,但您有两个选项: 首先,使用带有
onclick
事件的html配置上下文菜单:
<ul id="menu">
<li>
Option 1
<ul>
<li onclick="alert('test');">Sub option 1</li>
<li>Sub option 2</li>
</ul>
</li>
<li>Option 2</li>
</ul>
<script>
$(document).ready(function() {
$("#menu").kendoContextMenu({
orientation: orientation,
});
};
});
</script>
-
选择1
子选项1
- 次级选择2
选择2
$(文档).ready(函数(){
$(“#菜单”).kendoContextMenu({
方向:方向,,
});
};
});
第二,如果您可以确保名称的唯一性,您可以在
数据源
配置中添加单击属性,然后在上下文菜单上选择事件,您可以在数据源
中搜索相应的项目并手动执行附加的功能。另一种方法是添加选择功能和切换案例,如果您有treeview,则会出现这种情况:
$("#menu").kendoContextMenu({
select: function (e) {
var button = $(e.item);
var node = $(e.target);
var tmpKendDiagram = $(".diagram").data("kendoDiagram");
var tv = $(".tree-view").data("kendoTreeView");
var item = tv.dataItem(node);
var textSelect = $(e.item).children(".k-link").text();
switch (textSelect) {
case '1option':
//do stuff
break;
case '2option':
//do stuf
break;
default:
break;
}
}
});
我知道这很古老,但这是我实现它的方式
$(“#上下文菜单”).kendoContextMenu({
目标:“目标”,
选择:功能(e){
让index=$(e.item).index();
e、 sender.options.dataSource[index]。单击(e);
},
数据源:[
{文本:“复制”,
点击:功能(e){
控制台日志(“复制”);
}
},
{文本:“删除”,
点击:功能(e){
控制台日志(“已删除”);
}
}
]
});代码>
目标
我无法确保名称的唯一性,因此无法使用选项2。这也是项目内容没有足够的信息来决定在“全局”选择功能中要做什么的原因之一。您的第一个解决方案的问题是,当我在li元素上添加onclick处理程序时,我没有可用的事件信息e.target。此时,我使用了您的第一个解决方案,并将目标存储在菜单的打开事件中。