如果我有一系列像这样创建的事件监听器:
元素),还是它们会自动删除?这是一个问题吗?
例如:
var els = document.getElementyById('myList').getElementsByTagName('li');
for (i=0;i<els.length;i++) {
els[i].addEventListener(eventType, function(e){ /* do stuff */ }, true);
}
首先,我是否犯了类似这样的异端邪说?我的意思是,除了为每个<li>
元素创建一个事件之外,还有没有更简单的方法?
无论哪种情况,主要问题是:如果删除/替换<li>
,那么这些事件侦听器会发生什么?如果我这样做会发生什么:
document.getElementyById('myList').innerHTML = 'Hello World!';
监听器是否会保持“挂起”状态,从而减慢浏览器的速度(假设我有很多
ul
元素的委派处理程序是有意义的。这不一定更“简单”,但只是稍微复杂一些且更有效 - 或者如果您正在动态添加li
元素,则可能更简单。并且它完全避免了您担心的问题。 - undefined