1

data变量 infunction (e, data)总是返回 undefined 。IIRC 它应该是悬停的节点。

$("#search").bind("hover_node.jstree", function (e, data) {

    console.log(data); //always 'undefined'

    //This is what I wish would work:
    var node = data.rslt.obj, // the hovered node 
     tree_instance = data.inst; // tree instance

    tree_instance.open_node(node);

}).jstree({
    "core": {
        ...
});

关于这里有什么问题的任何想法?

4

1 回答 1

2

我创建了一个解决方法,因为hover_node充其量是零星的。我正在使用 json_data 插件,因此节点是动态创建的。所以每次打开一个节点时,检查其子节点是否为叶子节点,然后添加适当的 CSS。在这种情况下,我想在悬停的叶节点上添加一个“开始”按钮。

.bind("after_open.jstree", function (data) {

    refreshGoButtonHover();

});

...

function refreshGoButtonHover() {

    $('.jstree-leaf').mouseover(function () {
        $(this).find('.go_button').addClass('visible');
    });

    $('.jstree-leaf').mouseout(function () {
        $(this).find('.go_button').removeClass('visible');
    });
}
于 2013-03-01T14:38:27.410 回答