是否可以将单击事件附加到文档片段?

Amb*_*mps 5 javascript

我尝试过的:

// creating elements
var container = document.createDocumentFragment();
var headline = document.createElement('h1');
headline.innerHTML = 'This is a headline.';

// attaching to DOM
container.appendChild(headline);
document.body.appendChild(container);

// attaching click event
container.addEventListener('click', function () {
    console.log(arguments);
});
Run Code Online (Sandbox Code Playgroud)

此示例不起作用.事件未触发.

有没有办法将click事件附加到文档片段,或者根本不可能?

dfs*_*fsq 8

在这种情况下,click事件将不起作用,因为文档片段未附加到DOM结构.以下是文档中所说的内容:

各种其他方法可以将文档片段作为参数(例如,任何Node接口方法,例如Node.appendChildNode.insertBefore),在这种情况下,片段的子节点被附加或插入,而不是片段本身.

所以"片段的孩子被附加,而不是片段本身".这意味着绑定到片段的click事件几乎没用,因为在DOM之外它无法访问点击.

  • 您是什么意思“它不会起作用”?只是不可能单击,但是如果可能的话,例如container.dispatchEvent(new Event(“ click”)); 它仍然应该工作。 (2认同)