我已经看到了一些关于如何向Dojo Tree节点添加工具提示的建议,有些似乎没有用,有些人让我问其他问题......
我尝试过有限成功的一种方法是:
var myTree = new dijit.Tree({
model: treeModel,
id: "myTree",
showRoot: false,
persist: false,
onClick: function(item){
console.log(item.name);
},
_onNodeMouseEnter : function(node, evt){
var tip = new dijit.Tooltip({
label: node.item.name,
connectId: [node.domNode.id]
});
}
});
Run Code Online (Sandbox Code Playgroud)
但它只有在从树中较高的节点进入时才会创建工具提示的奇怪行为,并且只有当您从顶部边缘鼠标进入expando时...
第二次尝试我查看了Tree的onMouseEnter方法,但是它无法访问节点的数据项,因此我必须通过看起来有点逻辑来获取项目数据...查找当前节点id通过导航DOM树,然后在商店中查找该项目?...
最后我发现Tree上有一个'getTooltip(item)'方法,但是当我设置它时:
var myTree = new dijit.Tree({
model: treeModel,
id: "myTree",
showRoot: false,
persist: false,
onClick: function(item){
console.log(item.Obi_Id);
},
getTooltip: function(item){
return item.Secondary_Names;
}
});
Run Code Online (Sandbox Code Playgroud)
工具提示只是一个常规的HTML'标题'弹出窗口...
在动态(懒惰)树节点上完成dojo工具提示的正确(简单)方法是什么?-robbie
这是最简单的方法!
var myTree = new dijit.Tree({
model: treeModel,
id: "myTree",
showRoot: false,
persist: false,
onClick: function(item){
console.log(item.name);
},
_onNodeMouseEnter: function (node,evt) {
dijit.showTooltip(node.item.name,node.domNode)
},
_onNodeMouseLeave: function (node,evt) {
dijit.hideTooltip(node.domNode);
},
});
Run Code Online (Sandbox Code Playgroud)
我以前没有享受过使用 Tree 的乐趣,但是您是否尝试过使用以下命令生成新的工具提示:http ://dojotoolkit.org/reference-guide/dijit/Tooltip.html