1

我有一个带有复选框的道场树,它在 FF 和 Chrome 中运行良好,但在 IE(9) 中却不行。在大多数 IE 案例中,我可以找到一些解决方法,但这只是很奇怪。每当我尝试折叠或展开树节点时都会发生这种情况,无论它是通过用户输入 - 按下 +/- 展开按钮还是以编程方式 - 调用 TREE._collapseNode(NODE);

这是树的创建方式:

                this._tocTreeControl = new dijit.Tree({
                    model: this._treeModel,
                    showRoot: false,
                    autoExpand: true,
                    branchIcons: false,
                    nodeIcons: false,
                    "class": "IdentifyFilterTreeRoot",
                    _createTreeNode: function (args) {
                        var tnode = new dijit._TreeNode(args);
                        dojo.attr(tnode.labelNode, "innerHTML", args.label);
                        return tnode;
                    }
                });

它在 dojo 文件“dojo/dijit/tree.js”中引发错误

this.expandoNodeText.innerHTML=_2e[idx];

或者在未压缩的版本中,我相信是

this.expandoNodeText.innerHTML = _a11yStates[idx];

this.expandoNodeText.innerHTML 是“-”或“+”,_2e 是数组 [*,-,+,*],idx 是 1 或 2。看起来像正常操作的东西在 IE(9) 中抛出错误“无效的目标元素对于这个操作。”。我正在考虑选择捕获方法“_onExpandoClick”并手动隐藏/显示节点,但在 IE 中它没有到达该事件并在此之前引发错误。

任何人都知道为什么会发生这种情况,有什么办法可以解决这个问题?

4

1 回答 1

0

经过一些额外的搜索发现IE不支持在标签内设置innerHTML。所有的问题是这棵树在 dojo.DropDownMenu(它是表)中,所以我只是将它更改为 dojo.ContentPane,现在一切正常。

于 2013-02-27T00:48:43.907 回答