2011-03-23 4 views
1

Est-il possible de dissocier le comportement par défaut d'un lien hypertexte?Comment supprimer un lien hypertexte avec jQuery

J'ai appris d'autres questions que la dissociation ne peut être utilisée que sur des fonctions liées à jQuery. Je suppose que cela pourrait être la raison pour laquelle cela ne fonctionne pas.

jsFiddle

+0

voulez-vous dire le attribut href? voir ceci: http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery –

Répondre

2

Vous pouvez éviter le comportement par défaut en utilisant , ou en retournant false d'un gestionnaire d'événements.

$('#some-link-id').click(function (event) 
{ 
    event.preventDefault(); 
}); 

// or 

$('#some-link-id').click(function() 
{ 
    return false; 
}); 

Demo →

Comme vous le soupçonnez, vous ne pouvez pas utiliser unbind() parce qu'il n'y a pas d'auditeur à délier.

+0

Solution très propre! – Tim

0
$("#buttonId").click(function() { return false; }); 
3

$('myDiv').unbind('click') - si elle a été accroché via JavaScript

$('myDiv').attr('onclick','') - si elle a un événement en ligne

$('myDiv').attr('href','javascript://') - crée un lien factice qui ne fait rien

+0

Je ne pense pas que la suppression d'un attribut 'onclick' supprime également l'écouteur. –

+0

Merci, la 3ème option a fonctionné pour mon cas. http://jsfiddle.net/Tim86/PRkwC/1/ – Tim

0

vous pouvez essayer de lier tous les types d'événements à lui et utilisez event.preventDefault() pour arrêter le comportement par défaut quelque chose comme ceci:

$('a').bind('touchstart touchmove touchend mousedown click mouseup select',function(e){ 
e.preventDefault() 
}) 
Questions connexes