2015-11-05 107 views
1

kendoContextMenu”是Telerik套件的控件之一。我正试图用Kendo Scheduler控件附加它。如何将多个项目添加到Kendo Scheduler的上下文菜单中?

下面是渲染调度和菜单
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" }]); 
    } 
}); 
}); 

上面的代码在上下文菜单,并添加只有一个项目点击事件直接启动。我想在上下文菜单中有多个项目,每个项目都应有自己的事件,这样我可以在点击时使用它们。

下面的图像显示了正确的点击行为,它仅显示在菜单

enter image description here

我试图让菜单如下─其中有多个项目,有自己的单击事件

enter image description here

我试图像下面通过附加的文字,但我t似乎是错误的做法,它不能有单独的点击事件。

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" }]); 
    } 

请帮助

回答

2

恐怕你追加是错误的。通过连接"| Cancel",您不会添加新项目,而是向现有项目添加文本。

尝试创建一个新的对象,并使用append()追加它:

menu.append([{text: "Cancel", cssClass: "cancel-opt" }]); 

然后,通过班上select事件里面检查:

if (target.hasClass("cancel-opt")) 
+0

+1有意义,让我赶快试试,如果它的工作,然后接受这个答案。如果不是,这种方法仍然有帮助,所以+1。谢谢 – codetoshare

+0

@Deepak如果它不起作用,请更新您的问题并重新处理。 – DontVoteMeDown

相关问题