event.detail对象可以包含多个值吗? (Vanillatree.js)

时间:2018-05-02 11:52:00

标签: javascript html events tree

在玩Vanillatree.js时,我偶然发现了event.details并想到了以下内容:

如果您希望从树中选择填充textarea,您可以使用类似下面的代码,但如果您想使用labelname而不是{{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)而不是其内容?

1 个答案:

答案 0 :(得分:0)

找到了解决方案:

我做了一个错误的假设,整个对象被id引用,可以调用其他值。

工作代码:

main.addEventListener('vtree-select', function(evt) {
randomtextArea.value = tree.leafs[evt.detail.id].labeling + ' is selected';
});