Dojo Menu.bindDomNode() 不是函数

Posted

技术标签:

【中文标题】Dojo Menu.bindDomNode() 不是函数【英文标题】:Dojo Menu.bindDomNode() is not a function 【发布时间】:2015-07-01 16:19:31 【问题描述】:

我正在编写一个简单的 dojo 菜单并尝试将其附加到 Dijit.Tree 节点,该节点受单击处理程序的影响。有人可以帮忙吗?我收到了错误:

> Uncaught TypeError: nodeControlMenu.bindDomNode is not a function(anonymous function)

dojo.connect(tree, 'onClick', function(item, node, event)

    var addNodeMenuItem = new MenuItem(
        label : "Add Node"
    );
    var removeNodeMenuItem = new MenuItem(
        label : "Remove Node"
    );

    var nodeControlMenu = new Menu(
        targetNodeIds : [node]
    );


    nodeControlMenu.addChild(addNodeMenuItem);
    nodeControlMenu.addChild(removeNodeMenuItem);
    nodeControlMenu.bindDomNode(node);
);

【问题讨论】:

您使用的是哪个版本的道场?它看起来像 我用的是最新的。代码看起来是这样的,因为我找不到很多教程或书籍,所以我一直在零零碎碎地度过。很遗憾,我知道。 我认为这个 api 可能是旧的。对不起。 你能告诉我最近的吗? 如果你使用最新版本的dojo,即1.10,你应该直接使用它。 dojo.connect 已弃用,您应该改用“dojo/on”。您的代码将如下所示: on(tree,"Click",function(....)); 【参考方案1】:

您对 bindDomNode 的调用是多余的 - 有效地指定 targetNodeIds does the same thing。

但是,这并不能解释为什么您的代码声称 bindDomNode 不是函数,因为它肯定是在 dijit/Menu 的原型上定义的。如果没有给出进一步的上下文,我会怀疑您可能有一些不匹配的依赖项和工厂函数参数名称?

【讨论】:

以上是关于Dojo Menu.bindDomNode() 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Dojo 树网格的样式不正确

Dojo EnhancedGrid 嵌套排序不起作用

DOJO:DataGrid 增量加载不起作用

Dojo IconContainer 不工作

触发.dblclick()不起作用(Dojo问题?)

为啥这个 Dojo 代码不与它的 PHP 文件通信?