1

我有以下用 Dojo 编写的代码。它在除 Firefox (25,26) 之外的所有浏览器中都能正常工作并且符合预期控制台的错误是:typeError: this.getParent() is null这真的没有多大帮助。

onclick 事件不会触发上述错误。

问题可能出在哪里:

  var pMenu = new dijit.Menu({
        targetNodeIds: [ContainerNode]
    });

 var t = new dijit.MenuItem({
        label: "test",
        iconClass: "context_paste",
    });

dojo.connect(t, 'onclick', function(){alert("test")});
4

1 回答 1

1

我创建了一个小提琴并填写了缺失的代码,但无法在 Firefox 25 上重现该错误。我所做的一些更改是:

  • 删除了行尾的尾随iconClass逗号
  • 将菜单项放在菜单中placeAt(pMenu)
  • 在加载时运行代码。我不确定您是从提供的代码中执行此操作的。

http://jsfiddle.net/RichAyotte/okvp0hpu/

dojo.require('dijit.Menu');
dojo.require('dijit.MenuItem');

dojo.addOnLoad(function() {
    var ContainerNode = document.getElementById('container');

    var pMenu = new dijit.Menu({
       targetNodeIds: [ContainerNode]
    });

    var t = new dijit.MenuItem({
        label: "test",
        iconClass: "context_paste"
    }).placeAt(pMenu);

    dojo.connect(t, 'onClick', function(){alert("test")});
});
于 2014-12-01T15:42:52.933 回答