0

我正在使用 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>

如果我不启用/禁用任何功能,菜单会显示并正常工作,但在某些情况下菜单项不可用,因此我需要能够控制其状态。如果我启用/禁用,则手册根本不会显示。

谁能分享他们是如何做到这一点的?

更新:如果我删除上面的 DIV,我只能让菜单显示。然后它会显示,但使用“myMenu”启用/禁用什么都不做......

4

2 回答 2

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

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

于 2012-03-23T13:33:57.890 回答
0

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

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

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

希望这可以帮助任何偶然发现这一点的人。

上下文菜单文档

于 2014-03-06T15:04:39.547 回答