event.preventDefault() vs return false : quelle est la différence dans le traitement des événements ?
Bonjour à tous ! Je viens de commencer à étudier JavaScript et jQuery, et je suis tombé sur une chose étrange. Quand j'écris un gestionnaire de clic sur un lien, je veux empêcher la navigation. Dans certains exemples, je vois `event.preventDefault()`, et dans d'autres simplement `return false` à la fin de la fonction. Font-ils la même chose ?
Voici un exemple qui me trouble :
```javascript
// Variante 1
document.querySelector('a').addEventListener('click', function(event) {
event.preventDefault();
console.log('Le lien n'a pas fonctionné');
});
// Variante 2 (avec jQuery)
$('a').click(function() {
console.log('Le lien n'a pas fonctionné');
return false;
});
```
Les deux variantes semblent fonctionner de la même manière – le lien ne se déclenche pas. Mais j'ai remarqué que si j'utilise `return false` en JavaScript pur (sans jQuery), cela ne fonctionne pas toujours. Pourquoi ? Et y a-t-il une différence dans la façon dont ils affectent la propagation des événements ?
J'ai lu que `return false` peut arrêter la propagation, tandis que `preventDefault()` ne le fait pas. Est-ce vrai ? Et quand faut-il utiliser l'un plutôt que l'autre ?