我正在使用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”什么都不做......
答案 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是触发器绑定的元素。
希望这有助于其他任何偶然发现此事的人。