web-dev-qa-db-fra.com

Quand dois-je utiliser return false dans la fonction jquery?

J'ai trouvé beaucoup de fonctions comme celle-ci:

$(function() {
    $("body a").click(function() {
        alert(this.innerHTML);
        return false;
    });
});

Quelle est la différence entre this et $(this) dans jquery?

Ils ont tous une ligne return false; - Je ne sais pas quand je devrais utiliser return false Dans la fonction jquery et je ne sais pas à quoi ça sert?

34
zhuanzhou

Selon jQuery Events: Stop (Mis) Using Return False (lien archivé), le retour de false effectue trois tâches lorsqu'il est appelé:

  1. event.preventDefault ();
  2. event.stopPropagation ();
  3. Arrête l'exécution du rappel et retourne immédiatement lorsqu'il est appelé.

La seule action nécessaire pour annuler le comportement par défaut est preventDefault(). Émission return false; peut créer du code fragile. Habituellement, vous voudriez juste ceci:

$("a").on( 'click', function (e) {
    // e == our event data
    e.preventDefault();
});

Et deuxièmement, "this" est un élément DOM en javascript et "$ (this)" est un élément jQuery qui fait référence à l'élément DOM. En savoir plus sur le sujet à jQuery's this: demystified .

61
gruntled

Vous cliquez sur une ancre, dont le comportement par défaut est de naviguer quelque part. Renvoyer faux peut être une tentative d'empêcher la navigation et de garder l'utilisateur sur la page/vue actuelle.

9
Kon

Dans la portée du gestionnaire de clics, this est l'élément DOM non encapsulé. $(this) l'enveloppe et retourne un élément jQuery. Il est courant d'envelopper une fois et de le rendre disponible dans l'étendue sous la forme that, ou souvent $this (le préfixe des noms de variable avec $ est une convention pour indiquer un élément jQuery).

Votre exemple pourrait donc s'écrire

$(function() {
    $("body a").click(function() {
        var $this = $(this);
        alert($this.html());
        return false;
    });
});
3
Rob Cowie