我有一个带复选框的dojo树,它在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中它没有到达该事件并在此之前抛出错误。
任何人都知道为什么会这样,有什么办法可以解决这个问题?
答案 0 :(得分:0)
经过一些aditional搜索后发现IE不支持在标签内设置innerHTML。所有的问题都是这个树在dojo.DropDownMenu里面(这是表),所以我把它改成了dojo.ContentPane,现在一切正常。