禁用/启用jQuery Dynatree的上下文菜单不起作用

时间:2012-02-21 16:00:59

标签: jquery contextmenu dynatree jquery-dynatree

我正在使用jQuery dynatree以及找到here的上下文菜单。我遇到的问题是我无法启用/禁用上下文菜单或菜单中的各个项目。该插件说我应该能够做到这一点:

$("#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”什么都不做......

2 个答案:

答案 0 :(得分: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);
}

我只是检查选择了正确的类型节点以便能够执行操作(查看parent,即包含文件夹)。

答案 1 :(得分:0)

遇到同样的问题,您实际上可以禁用上下文菜单触发器,如:

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

并使用True重新启用它。 dynatree-title是触发器绑定的元素。

希望这有助于其他任何偶然发现此事的人。

Context menu documentation