Dynatree jQuery插件如何向节点添加自定义属性

4
我想要给 DynatreeNode 类 添加新属性。例如,在 OnSelect 方法中,我想使用 node.myproperty 属性。node.myproperty 的值是从某个 DOM 元素计算而来的。有没有办法实现这个需求呢?我尝试使用 jQuery extend,但似乎行不通。
1个回答

0

这是JavaScript,所以你可以简单地通过赋值在几乎任何地方创建一个新属性 ;-)

对于Dynatree而言,推荐的位置应该是node.data对象,例如:

node.data.foo = "bar";

然后访问它:

onSelect(node){
    if(node.data.foo !== undefined){
        alert(node.data.foo);
    }
}

如果“foo”属性应该在OnSelect、getNodeByKey、getActiveNode等函数中可访问,怎么办?如何使所有节点实例都具有属性foo? - marcinn
如果您分配了它,它就存在。否则它是undefined - mar10
mar10,让“foo”成为一个函数,例如node.data.foo = function() { return $("#someTextBox").val() }。我想在多个上下文中使用属性“foo”,例如在onSelect、onActivate等中。节点应该具有属性“foo”,始终可以访问而不是'undefined'。 - marcinn
你可以向DynatreeNode原型添加函数。这更像是一个JavaScript问题,而不是Dynatree问题。 - mar10
其实,我在考虑使用DynaTreeNode.prototype来实现类似marcinn所写的函数,但是以这种方式定义的属性并没有被添加。我尝试在jquery ready()和dynatree onrender()中进行操作,但是没有任何效果。也许你知道我可能做错了什么 - matt137

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接