如题。
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的方法直接选中目标节点,当然能够挂载上事件。