2010-06-01 5 views
1

Je suis incapable d'obtenir cet événement au feu:sélecteur jQuery ne pas sélectionner

$("#about").click(function() 
    { //I have put alert("foo") here, won't fire 
    $("#about_stuff").toggle(); 
    }); 

snip

<li ><a href="#a" id="about">About</a> 

Je l'ai testé la ligne à bascule dans Firebug et il fonctionne avec succès - je suis à mon Fini l'esprit, je l'ai vérifié contre de multiples exemples et il refuse obstinément de travailler.

+0

juste hors de curiousity, pourquoi utilisez-vous 'href = "# un"' au lieu de 'href = "#"'? –

+0

@Alastair: donc je sais que je frappe le bon lien. –

Répondre

1

À partir de votre code:
D'abord, vous avez document.ready

$(document).ready(
    function() 
    { // <-- start ready 
    $("code").hide(); 
    }); // <-- end ready 

Maintenant, le code suivant est pas document.ready et écrit avant que les liens ont chargé. Ceci est la raison pour laquelle le sélecteur est vide lorsque ce code fonctionne:

$("#about").click(
    function() 
    { 
    $("#about_stuff").toggle(); 
    return false; 
    }); 
+0

Je ne suis pas sûr de suivre - le code du sélecteur doit-il être assigné pendant document.ready? –

+0

Oui, c'est le cas. Votre '

0

Avez-vous par hasard un autre élément avec id="about" qui lui est affecté? Si c'est le cas, le navigateur peut seulement sélectionner le premier. Essayez quelques diagnostics de base:

alert($('#about').length); 
alert($('#about').eq(0).attr('href')); 

Si ce n'est toujours pas le cas, avez-vous un lien vers le site de développement, ou est-ce privé?

+0

Non - juste vérifié. Aussi, je l'ai renommé plusieurs fois, juste pour m'assurer qu'aucune bizarrerie ne s'est glissée dedans. –

+0

Réponses - "1" et "#a". (qui est ce que je m'attendrais, je pense ...) –

+0

http://pastebin.com/5hyVrH2d voici un pastebin d'un code légèrement expurgé - il mourra après un moment. Je vais éditer l'OP une fois le truc réglé. –

0
$("#about").click(function(e){ 
    e.preventDefault(); // to prevent default event 
    $("#about_stuff").toggle(); 
});