Je comprends comment le bouillonnement et event.stopPropagation()
fonctionne, mais je cherche un moyen d'éviter les gestionnaires de clics sur tous les enfants d'un nœud DOM.
<div onclick="console.log('LOG ME')">
<div onclick="console.log('DO NOT LOG ME')">Click me</div>
</div>
Je veux que "LOG ME" soit enregistré, mais que "DO NOT LOG ME" ne le soit pas.
J'ai trouvé une solution CSS en utilisant pointer-events: none
Cependant, tous mes styles CSS :hover et :focus ont disparu de la division enfant.
Des idées ?
Edit : Un peu de contexte. J'utilise React. Le div extérieur est un HOC, le div intérieur est un composant visible. Je veux que le HOC attrape tous les clics du composant enfant, et arrête la propagation du clic dans l'enfant. Dans React, je le ferais :
const HOC = ChildComponent => class extends Component {
handleClick = event => { /* Do what with event? */ }
render() {
return <div onClick={this.handleClick}>
<ChildComponent />
</div>;
}
}
Où ChildComponent
est un composant cliquable