2010-08-04 3 views
6

J'utilise la balise <a> pour construire des boutons. J'utilise JavaScript (jQuery) pour implémenter le comportement.En utilisant la balise <a> comme un bouton sans suivre le lien

Comment puis-je empêcher le navigateur de suivre un lien, tout en continuant à exécuter tous click() événements?

Ce:

$("a.button").live("click", function(event) { return false; }); 

ne fonctionne pas, parce que, selon la position de ce gestionnaire, il peut empêcher d'autres .click() gestionnaires d'exécuter. Pour certains boutons, cela fonctionne comme je le veux, mais pour certains, cela empêche mes autres gestionnaires de s'exécuter.

Je sais que je pourrais utiliser un seul gestionnaire de clic par bouton, mais je préférerais le faire l'AOP sens.

Répondre

6

jQuery fournit une méthode appelée preventDefault qui arrêtera l'action par défaut de l'événement de se produire. Avec ceci le code suivant arrêtera le lien d'être suivi mais ne devrait pas arrêter la propagation du même aux autres gestionnaires.

$("a.button").click(function(event){ event.preventDefault(); }); 
+0

C'est le cas. Tu m'as battu :) –

Questions connexes