如何响应用户扩展节点?
how to respond to user expanding a node?
我猜答案是 expand
- 但 expand
事件似乎没有触发。
但让我从头说起:我有一棵漂亮的树,我想使用 jBox 来显示有关某些节点的信息。我注意到这仅适用于创建树时可见的节点,但不适用于折叠节点下的节点。所以我想我可以使用 expand
并分配一个将调用 jBox
的事件处理程序来创建工具提示。但它没有用。我向 `expand-handler 添加了一个 console.log
并注意到它从未记录过。
我指定的不正确吗?
Fiddlehere。 "SD"-Node 中有一些项目应该有一个工具提示附加到 (i)-icon。
它不会触发,因为你传递的是一个字符串:
"expand": "function(event, data) {...}"
您需要去掉双引号,使其成为一个函数:
"expand": function(event, data) {...}
查看更新 fiddle:http://jsfiddle.net/pgh52m4w/3/
对于事件 "dblclick" 也是如此。也删除那里的双引号。
此外,鼓励在附加 jBox 时使用 .attach()
方法。 attach 方法将检查此 jBox 是否已附加到元素,如果没有则仅附加它。
查看更新后的 fiddle。我为工具提示创建了一个变量并在展开事件中重新附加它:
$(function() {
var treei = $("#tree").fancytree({
expand: function () {
myTooltip && myTooltip.attach(); // Reattaching Tooltip
}
// ...
});
var myTooltip = new jBox("Tooltip", { // get tooltips showing
attach: '[data-jbox-content]',
getTitle: "data-jbox-title",
getContent: "data-jbox-content"
});
});
我猜答案是 expand
- 但 expand
事件似乎没有触发。
但让我从头说起:我有一棵漂亮的树,我想使用 jBox 来显示有关某些节点的信息。我注意到这仅适用于创建树时可见的节点,但不适用于折叠节点下的节点。所以我想我可以使用 expand
并分配一个将调用 jBox
的事件处理程序来创建工具提示。但它没有用。我向 `expand-handler 添加了一个 console.log
并注意到它从未记录过。
我指定的不正确吗?
Fiddlehere。 "SD"-Node 中有一些项目应该有一个工具提示附加到 (i)-icon。
它不会触发,因为你传递的是一个字符串:
"expand": "function(event, data) {...}"
您需要去掉双引号,使其成为一个函数:
"expand": function(event, data) {...}
查看更新 fiddle:http://jsfiddle.net/pgh52m4w/3/
对于事件 "dblclick" 也是如此。也删除那里的双引号。
此外,鼓励在附加 jBox 时使用 .attach()
方法。 attach 方法将检查此 jBox 是否已附加到元素,如果没有则仅附加它。
查看更新后的 fiddle。我为工具提示创建了一个变量并在展开事件中重新附加它:
$(function() {
var treei = $("#tree").fancytree({
expand: function () {
myTooltip && myTooltip.attach(); // Reattaching Tooltip
}
// ...
});
var myTooltip = new jBox("Tooltip", { // get tooltips showing
attach: '[data-jbox-content]',
getTitle: "data-jbox-title",
getContent: "data-jbox-content"
});
});