둘 사이의 차이는 크지 않을 것이다. 성능을 향상 시키려면 dom에 추가하는 이벤트 핸들러의 수를 최소화하고 다시 필요하지 않은 이벤트 핸들러를 제거해야합니다. 게시 한 컨텍스트에서 삭제가 의미가 없습니다. (연관) 배열의 항목을 비우거나 사용자가 만든 객체를 제거하는 데 사용해야합니다. 당신은 당신의 모범을 따르지 않습니다.
각 항목을 클릭 할 수있는 목록의 경우 목록 컨테이너에만 개별 요소가 아닌 하나의 이벤트 처리기를 연결해야합니다. 그런 다음 핸들러로 전달 된 이벤트 객체의 target 속성을 사용하여 실제 표시된 listitem을 찾을 수 있습니다.
편집 : li.id가 클릭 된 실제 항목을 식별하는 데 사용되는 여러 목록 항목
에 대해 하나의 이벤트 핸들러를 사용하는 방법에 대한 예. 'li'에 자식이 있으면 올바른 항목을 찾을 때까지 대상 DOM 트리를 따라 가야 할 수 있습니다.
<ul id="list">
<li id="item_1">First Item</li>
<li id="item_2">Second Item</li>
<li id="item_3">Third Item</li>
<li id="item_4">Fourth Item</li>
<li id="item_5">Fifth Item</li>
<li id="item_6">Sixth Item</li>
<li id="item_7">Seventh Item</li>
</ul>
<script>
window.onload(function() {
document.getElementById("list").addEventListener("click",
function(event) { alert("" + event.target.id + " was clicked"); });
});
</script>
성능면에서는 중요하지 않습니다. * 어쩌면 * 한 번에 수만 개의 요소에 대해 이렇게하면 미세한 차이가있을 수 있습니다. –