Maison >interface Web >js tutoriel >Comment puis-je empêcher le défilement indésirable des pages lorsque je clique sur des liens JavaScript ?

Comment puis-je empêcher le défilement indésirable des pages lorsque je clique sur des liens JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 02:11:02182parcourir

How Can I Prevent Unwanted Page Scrolling When Clicking JavaScript Links?

Empêcher le défilement de page lors des clics sur des liens JavaScript

Lorsque votre page Web contient des liens qui déclenchent des événements JavaScript mais naviguent également vers une nouvelle page, vous peut rencontrer un effet secondaire indésirable : la page défile vers le haut. Ce comportement peut interrompre le flux des utilisateurs et perturber les fonctionnalités prévues de votre site Web.

Pour éviter ce comportement de défilement, vous devez désactiver l'action par défaut associée au clic sur le lien, qui redirige vers l'URL cible. Voici deux méthodes efficaces pour y parvenir :

Option 1 : event.preventDefault()

Cette méthode vous permet d'empêcher explicitement l'action par défaut en appelant le .preventDefault () méthode de l'objet événement transmis à votre gestionnaire d'événements.

  • jQuery :

    <code class="js">$('#ma_link').click(function($e) {
      $e.preventDefault();
      doSomething();
    });</code>
  • addEventListener (DOM brut) :

    <code class="js">document.getElementById('#ma_link').addEventListener('click', function (e) {
      e.preventDefault();
      doSomething();
    })</code>

Option 2 : return false ;

Dans jQuery, renvoyer false à partir d'un Le gestionnaire d'événements invoquera automatiquement les méthodes .stopPropagation() et .preventDefault(). Cela fournit un autre moyen d'empêcher le comportement du lien par défaut :

<code class="js">$('#ma_link').click(function(e) {
     doSomething();
     return false;
});</code>

Si vous utilisez des événements DOM bruts (et non jQuery), renvoyer false fonctionnera également sur les navigateurs modernes, mais pour une compatibilité maximale avec les navigateurs plus anciens, il est recommandé d'appeler explicitement .preventDefault().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn