2010-04-21 11 views
3

Je sais que l'événement live() gère les bulles d'événements différemment de tous les autres événements jQuery. jQuery recommande d'utiliser 'return false', mais dans mon cas cela ne fonctionne pas.jQuery live() et stopPropagation() issue

La question est la suivante:

J'ai un DIV qui contient une balise d'ancrage.

Le DIV est lié en utilisant live(). Chaque fois que je clique sur la balise d'ancrage à l'intérieur de cette DIV, elle fait des bulles et appelle l'événement DIV. Si je lie un événement à cette balise A qui renvoie false, cela empêche l'ouverture du lien. Ni stopPropagation() ni return false work dans ce cas. Il y a-t-il des alternatives? Idéalement, je voudrais garder l'événement live() autour.

+0

utilisez-vous 'event.stopPropagation()'? il serait utile si vous avez partagé votre code avec nous – munch

+1

pouvons-nous voir le code que vous utilisez s'il vous plaît? – mcgrailm

Répondre

5

element.preventDefault();

stopPropagation arrêtera le bouillonnement alors preventDefault fera que l'action par défaut de l'élément concerné ne se déclenche pas.

+0

Cela a fonctionné très bien, merci. – colourandcode

2

cela devrait fonctionner aussi longtemps que votre ancre href est à une URL, pas sûr de ce qui se passerait si c'était un appel de méthode javascript - deviner ne serait pas bon. Il semble qu'il y ait probablement une manière plus élégante de faire ceci, mais je n'ai aucune idée.