web-dev-qa-db-fra.com

Jquery href click - comment puis-je lancer un événement?

J'ai cette ancre et au clic je voudrais faire apparaître quelque chose .. Ce Href est dans une page qui a d'autres hrefs.

<a class="sign_new" href="#sign_up">Sign up</a>

jQuery:

$(document).ready(function(){
   $('a[href = "sign_up"]').click(function(){
      alert('Sign new href executed.'); 
   }); 
});

Le code ci-dessus ne se déclenche pas.

14
user1965451

Ce n'est pas le cas car href n'est pas sign_new mais #sign_up. Essayez comme ci-dessous,

$('a[href="#sign_up"]').click(function(){
  alert('Sign new href executed.'); 
}); 

DEMO:http://jsfiddle.net/pnGbP/

31
Selvakumar Arumugam

Si vous possédez le code HTML, il peut être judicieux d'attribuer un identifiant à cet href. Votre code ressemblerait alors à ceci:

<a id="sign_up" class="sign_new">Sign up</a>

Et jQuery:

$(document).ready(function(){
    $('#sign_up').click(function(){
        alert('Sign new href executed.');
    });
});

Si vous ne possédez pas le code HTML, vous devez alors remplacer $ ('# sign_up') par $ ('a.sign_new'). Vous pouvez également déclencher event.stopPropagation () si vous avez un href à l'ancre et que vous ne voulez pas qu'il soit traité (AFAIR return false pourrait également fonctionner).

$(document).ready(function(){
    $('#sign_up').click(function(event){
        alert('Sign new href executed.');
        event.stopPropagation();
    });
});
7
theadam

Essayer:

$(document).ready(function(){
   $('a .sign_new').click(function(){
      alert('Sign new href executed.'); 
   }); 
});

Vous avez mélangé les noms class et href/le type de sélecteur.

3
Marcus

Vous liez l'événement click aux ancres avec un attribut href avec la valeur sign_new.

Liez les ancres avec la classe sign_new ou liez avec la valeur href #sign_up. Je préférerais l'ancien.

0
orique