2017-04-26 26 views
0

Ich habe den folgenden Code:Array.from (..) innerhalb Prototyp mit eventlistener funktioniert nicht

Array.from(navigation_element).forEach(function(e, i){ 
    e.addEventListener('click', function(){ 
    console.log('clicked'); 
    }) 
}); 

sein ein gemeinsamer Code für mich auf Click-Ereignisse zu nähern und es funktioniert in allen Fällen gut. Aber jetzt habe ich mit dem Problem konfrontiert, dass es innerhalb des Konstruktors nicht funktioniert (mit Prototypen, weiß nicht, ob es wichtige Information ist). Hier ist der vollständige Code auf codepen. Es ist auf line 50. Kann mir jemand erklären, warum es passiert?

+0

Ich bin mir nicht sicher, aber ich vermute, es ist weil Sie versuchen, einen Ereignis-Listener zu einem dynamisch hinzugefügten Element hinzuzufügen? –

+0

Ja, ich dachte auch darüber nach, aber es funktioniert gut wie hier: https://codepen.io/NeedHate/pen/PmbqWZ?editors=1111 – NeedHate

Antwort

2

In Ihrem element_create_2 Sie dies zu tun:

target.innerHTML += ...

dies alle Handler html Knoten innerhalb des Behälters, einschließlich der zuvor hinzugefügten Navigationslinks mit ihrem Klick ersetzt.

+0

verdammt perfekt! Du hast meinen Tag gerettet! Danke vielmals. – NeedHate

Verwandte Themen