2016-04-13 22 views
1

ich eine Sache haben in ähnliche ReaktionReact, klicken Sie auf das übergeordnete Element

<li id="my-id" onClick={this.handleClick}> 
    <span>Something here</span> 
    <i>Some italic text here</i> 
</li> 

Wo ich die ID meines LI zugreifen müssen.

handleClick(ev) { 
    console.log(ev.target); 
} 

Die Sache ist die, dass, wenn ich auf dem kursiven Text klicken, es tröstet mich das i-Element, nicht die li, wie es sollte.

Kann mir jemand erklären, warum, und wie kann ich onClick mein Element zurückgeben?

+0

"Warum" ist, weil so React funktioniert, z. B. http://stackoverflow.com/a/32562118/438992. Dies ist das gleiche wie, sagen wir, jQuery funktioniert: Das Ziel ist, was angeklickt ist, 'currentTarget' ist, wo der Handler angefügt wurde. –

Antwort

8

Sie müssen .currentTarget anstelle von .target

handleClick(ev) { 
    console.log(ev.currentTarget); 
} 

.currentTarget bezieht sich auf das Element verwenden, wo Ereignishandler angebracht wurde als zu .target gegenüber, die auf das Element identifiziert, das das Ereignis aufgetreten ist.

+1

danke, wird als korrekt akzeptiert – Hiero

Verwandte Themen