【问题标题】:Dojo Menu.bindDomNode() is not a functionDojo Menu.bindDomNode() 不是函数
【发布时间】: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(....){});

标签: javascript jquery html debugging dojo


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多