2015-11-05 59 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

相關問題