Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript event.detail对象能否包含多个值?(Vanillatree.js)_Javascript_Html_Events_Tree - Fatal编程技术网

Javascript event.detail对象能否包含多个值?(Vanillatree.js)

Javascript event.detail对象能否包含多个值?(Vanillatree.js),javascript,html,events,tree,Javascript,Html,Events,Tree,在玩游戏时,我无意中发现了事件。详细信息并想到了以下几点: 如果希望从树中选择填充文本区域,可以使用下面的代码,但是如果希望使用标签或名称而不是id,该怎么办 main.addEventListener('vtree-select', function(evt) { randomtextArea.value = evt.detail.id + ' is selected'; }); 在我的例子中,树的每个元素如下所示: id:{ attribute1:"value1", parentId:pa

在玩游戏时,我无意中发现了
事件。详细信息
并想到了以下几点:

如果希望从树中选择填充文本区域,可以使用下面的代码,但是如果希望使用
标签
名称
而不是
id
,该怎么办

main.addEventListener('vtree-select', function(evt) {
randomtextArea.value = evt.detail.id + ' is selected';
});
在我的例子中,树的每个元素如下所示:

id:{
attribute1:"value1",
parentId:parentId,
name:name,
id:id
}
我认为主js文件中的责任函数是:

        _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:'testtest'}
这样的东西被写入细节中,它也总是只将
id
传递给
事件。细节

我找错地方了吗? 事件函数只能使用对象的名称(
id
)而不能使用其内容吗?

找到了解决方案:

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

工作代码:

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