2012-02-21 63 views
0

我正在使用jQuery dynatree以及發現上下文菜單here。我遇到的問題是我無法啓用/禁用菜單中的上下文菜單或單個項目。該插件說,我應該能夠做到這一點:禁用/啓用上下文菜單爲jQuery Dynatree不工作

$("#contextMenu").enableContextMenu(); 

但是,這並不爲我工作。這裏的菜單:

<!-- Definition of context menu --> 
<div id="contextMenu"> 
    <ul id="myMenu" class="contextMenu"> 
     <li class="resubmit"><a href="#resubmit">Resend</a></li> 
    </ul> 
</div> 

菜單顯示,如果我不把任何啓用/禁用工作正常,但也有在菜單項不可用,所以我需要能夠控制其狀態的情況。如果我放入啓用/禁用,manu根本不顯示。

任何人都可以分享他們如何得到這個工作?

更新:我只能得到菜單顯示,如果我刪除上面的DIV。然後,它會顯示,但能/禁止使用「MYMENU」什麼也不做......

+0

嘗試更好地調查你有的菜單示例。在瞭解了它的工作原理之後,請在項目中調整此菜單。 – 2012-02-21 16:31:58

+0

對不起 - 我已經回過頭來了解唯一的信息,包括一個不使用啓用/禁用的例子,我找不到任何可以嘗試的東西。你以前做過嗎?如果是這樣,你能提供代碼示例嗎?謝謝 – Mark 2012-02-21 17:37:08

回答

0

我不能禁用菜單本身,所以我必須處理它被選中的項目後:

switch(action) 
{ 
    case "resubmit": 
     //-- show verify dialog 
     var selectedNode = $("#tree").dynatree("getActiveNode"); 
     if(selectedNode == null) 
      break; 
     var parentTitle = selectedNode.parent.data.title; 
     if(parentTitle == "Error" || parentTitle == "To Lab" || parentTitle == "From Lab") 
      $('#dialog-confirm').dialog('open'); 
      break; 
    default: 
      alert("Invalid action '" + action + "' to node " + node); 
} 

我只是檢查選擇適當的類型節點能夠採取行動(看父母,這是包含的文件夾)。

0

在同樣的問題來了,你其實可以禁用上下文菜單觸發條件:

$(".dynatree-title").contextMenu(false) 

;並用真正重新啓用它。 dynatree-title是觸發器所綁定的元素。

希望這可以幫助其他任何人發現這一點。

Context menu documentation