Comment écouter des événements de clic spécifiques mais en supprimer d'autres ?
P粉199248808
P粉199248808 2024-04-04 16:55:27
0
1
469

Mon application Web contient un tableau HTML où chaque ligne renvoie à une URL spécifique :

<table>
  <tr data-url="https://www.google.com">
    <td>Google</td>
  </tr>
  <tr data-url="https://www.yahoo.com">
    <td>Yahoo</td>
  </tr>
</table>

Voici le Javascript qui le fait fonctionner :

const rows = document.querySelectorAll('table tr[data-url]');

rows.forEach(row => {
  row.addEventListener('click', function() {
    handleClick(row);
  });
});

function handleClick(row) {
  const url = row.dataset.url;
  window.document.location = url;
}

Ce code fonctionne très bien.

Maintenant, mon client veut que j'ajoute des cases à cocher à ces cellules de tableau. (Je n'entrerai pas dans les détails sur pourquoi.)

Comment supprimer la redirection lorsque la case est cochée ?

Merci pour votre aide.

P粉199248808
P粉199248808

répondre à tous(1)
P粉980815259

Vous pouvez vérifier si la cible de l'événement n'est pas une case à cocher.

rows.forEach(row => {
  row.addEventListener('click', function(e) {
    if (!e.target.matches('input[type=checkbox]')) handleClick(row);
  });
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal