addEventListener
에서 중복을 제거하는 방법.addEventListener에서 dupliacte를 제거하는 방법
나는 사용자가 특정 호출을 할 때 다른 div의를 채우기 위해 아약스를 사용하는 사이트가 있습니다. 나는 또한 URL을 필터링 할 수 있도록 모든 링크를 잡고 URL을 addEventListener
으로 만들고 사용자가 특정 링크를 클릭하면 경고를 표시하는 자바 스크립트 기능이 있습니다. 다음은 어떤 링크가 새로 인구에있는 경우 내용 중 일부는()가 호출되어 supportfunction 후 아약스를 사용하여 채워지기로, 나는이 직면하고있는 addEventListener
function supportFunction() {
var myFunction = function(e) {
var regExp = new RegExp('//'+location.hostname+'($|/)');
var href = this.href;
if (regExp.test(href)) {
e.preventDefault();
alert('same domain link');
}
}
var links = document.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', myFunction);
}
}
문제를 만들어 내 자바 스크립트 함수는 내용은 addEventListener
에 추가되지 않습니다. 아약스 호출이 만들어 질 때마다 supportfunction을 호출 해 보았습니다. 그러나이 경우에는 중복이 eventlistener에 추가됩니다. 즉, 누군가가 동일한 도메인 링크를 클릭하면 2 개의 경고를 받게되고, 일부 경우 3-4는 supportfunction()이 호출 된 시간에 따라 경고합니다.
나는 내 문제가 무엇인지 설명 같아요. 너희들이 문제에 대해 더 많은 설명을 원한다면 알려줘.
나는 대답을 googleing 시도 하고이 링크를 발견 http://dean.edwards.name/weblog/2005/10/add-event/하지만 내 경우에는 그것을 사용하는 방법을 알아낼 수 없습니다.
참고 : 나는 순수 자바 스크립트 솔루션이 아닌 JQuery와 솔루션을 찾고 있어요. 당신은 하나의 리스너를 추가하는 경우
"이벤트 위임"에 대한 찾습니다. 링크에는 고정 된 상위 컨테이너에 이벤트를 추가하지 말고 이벤트 대상 요소를 사용하여 링크인지 확인하십시오. – elclanrs
본문에 * one *'click' 이벤트를 첨부하고'event.target' 또는'event.srcElement'를 확인합니다. 요소가 링크 ('a')이면 함수를 실행하십시오. – JCOC611
[동적으로 생성 된 요소에 대한 이벤트 바인딩?] (0120-385-305) – Bergi