如何响应用户扩展节点?

时间:2018-06-08 14:28:00

标签: fancytree jbox

我猜答案是expand - 但expand - 事件似乎没有触发。

但是让我从头开始:我有一棵漂亮的树,我想用jBox来显示某些节点​​的信息。我注意到这只适用于创建树时可见的节点,但它对折叠节点下的节点不起作用。所以我想我可以使用expand并分配一个事件处理程序,它将调用jBox来创建工具提示。但它没有用。我在`expand-handler中添加了一个console.log,注意到它从未记录过。 我是否错误地指定了它?

小提琴here。 " SD" -Node中有一些项目应该有一个工具提示附加到(i)-icon。

1 个答案:

答案 0 :(得分:1)

它不会因为你传入一个字符串而触发:

"expand": "function(event, data) {...}"

您需要删除双引号,以便它是一个函数:

"expand": function(event, data) {...}

请参阅更新的小提琴:http://jsfiddle.net/pgh52m4w/3/

“dblclick”事件的计数相同。也删除那里的双引号。

此外,鼓励在附加jBox时使用.attach()方法。 attach方法将检查这个jBox是否已经附加到元素上,如果不是,则只附加它。

查看更新的小提琴。我为工具提示创建了一个变量,并在expand事件中重新附加它:

$(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"
  });
});