在玩Vanillatree.js时,我偶然发现了event.details
并想到了以下内容:
如果您希望从树中选择填充textarea,您可以使用类似下面的代码,但如果您想使用label
或name
而不是{{1 }}?
id
在我的例子中,树的每个元素都是这样的:
main.addEventListener('vtree-select', function(evt) {
randomtextArea.value = evt.detail.id + ' is selected';
});
我认为主js文件中的负责函数是:
id:{
attribute1:"value1",
parentId:parentId,
name:name,
id:id
}
即使 _dispatch: function( name, id ) {
var event;
try {
event = new CustomEvent( 'vtree-' + name, {
bubbles: true,
cancelable: true,
detail: {id:id}
});
} catch(e) {
event = document.createEvent( 'CustomEvent' );
event.initCustomEvent( 'vtree-' + name, true, true, { id: id });
}
( this.getLeaf( id, name, true ) || this.tree )
.dispatchEvent( event );
return this;
},
之类的内容写在详细信息中,它也只会将{test:'testtesttest'}
传递给id
event.details
)而不是其内容?
答案 0 :(得分:0)
找到了解决方案:
我做了一个错误的假设,整个对象被id
引用,可以调用其他值。
工作代码:
main.addEventListener('vtree-select', function(evt) {
randomtextArea.value = tree.leafs[evt.detail.id].labeling + ' is selected';
});