document.importNode方法返回的对象为何不能绑定事件处理函数,而用queryselector选择了其子元素则可绑定?

如题。

const template = document.querySelector('#fileItem-template');
let clone = document.importNode(template.content, true);
if(file.type == 'directory'){
        clone.addEventListener('dblclick', ()=>{
            loadDirectory(file.path);
        }, false);
}

如果是像上面那样写,clone对象**是并没有绑定上事件处理函数的**。而如果我用queryselector选择其子元素则可绑定,代码如下。

const template = document.querySelector('#fileItem-template');
let clone = document.importNode(template.content, true);
if(file.type == 'directory'){
        clone.querySelector('img').addEventListener('dblclick', ()=>{
            loadDirectory(file.path);
        }, false);
}

是不是没有 addChild
http://www.runoob.com/try/try.php?filename=tryjsref_document_importnode

这两个方法都不是一个意思,document.importNode是复制节点,其中的对象并不指向原有的节点对象,你通过这个方法当然没办法给目标节点挂载事件,
queryselector的方法直接选中目标节点,当然能够挂载上事件。