2017-05-16 1 views
0
elem.addEventListener('click',function(e){ 
    if(e.target && e.target.matches("span#save-icon")){ 
     var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0]; 
     save_to_my_space(HEX); 
     console.log(HEX); 
    } 
    }); 

Hier Elem ist ein Elternteil div, die acht Kinder, ich bin mit delegierten Ereignisse auf alle Kinder Elemente Elem. Jedes Mal, wenn ich ein Ereignis durch Klicken auf eines der Kinder elem Ereignis ausgelöst wird mehrfach ausgelöst gleich der Anzahl der Kinder elem hat. Wie kann ich dieses Problem lösen?So verwenden Sie die Ereignisdelegierung in JavaScript?

+0

einfach verhindern, dass die Veranstaltung Delegation 'event.stopPropagation() erwähnt lösen;'. – Christoph

+0

Und in Zukunft, bitte auch die entsprechenden HTML und CSS. –

+0

Danke, aber wie man event.stopPropagation(); Ich benutze Vanilla JS –

Antwort

2

event.stopPropagation() Verwendung wird das Problem

Wie @George überprüfen die Dokumentation here.

elem.addEventListener('click',function(e){ 
    if(e.target && e.target.matches("span#save-icon")){ 
     e.stopPropagation() 
     var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0]; 
     save_to_my_space(HEX); 
     console.log(HEX); 
    } 
    }); 
+0

Ja, mein Problem wurde gelöst, danke. –

Verwandte Themen