¿Etiquetas jQuery y HTML5?

Actualmente estoy desarrollando una página HTML5, así que quiero usar jQuery para algunos efectos. Aquí está mi código que no parece funcionar:

El código html:

        <nav id="mainNavigation">
        <!--....-->
        </nav>

y ahora jQuery:

$('#mainNavigation').click(function(){
   alert("test");
});

Por alguna razón, no pasa nada. Cuando intento algo como:

$(document).ready(function(){
    alert("test");
})

todo funciona bien.

Gracias por cualquier ayuda.

preguntado el 08 de noviembre de 11 a las 15:11

¿Qué navegador estás usando? ¿Es compatible con html 5? -

¿Está el controlador de clics dentro del documento. -

No funciona en el Firefox actual, así que en Google Chrome. @Birey: No. -

Su código parece estar funcionando. jsfiddle.net/Nw9xy ¿En qué navegador estás viendo esto? -

3 Respuestas

Parece que no está envolviendo su código en un documento listo. Básicamente, esto le dice que el código para ejecutar con DOM está listo.

Estás haciendo esto:

$(document).ready(function() {
    $('#mainNavigation').click(function(){
        alert("test");
    });
});

Según el comentario de motoxer4533, también puede hacer esto a través del documento abreviado de jQuery listo:

$(function() {
    $('#mainNavigation').click(function(){
        alert("test");
    });
});

respondido 09 nov., 11:00

Bueno, eso es todo. ¡Muchos gracias! - oopbase

Para algún contexto, su javascript se estaba cargando en la página, pero no le estaba diciendo cuándo debía ejecutarse. Es una buena práctica utilizar un evento preparado para DOM. También puede usar un cierre autoejecutable, pero su JavaScript se ejecutará tan pronto como llegue al final del cierre, que puede no ser lo que está buscando. - Seth

Por el simple hecho de decirlo, puede acortar esto a $(function(){ ... }); - Damon Bauer

Prueba con:

$(document).ready(function(){ 
   $('#mainNavigation').click(function(){ 
     alert("test"); 
   });  
}) 

or

$(document).ready(function(){ 
   $('#mainNavigation').live('click', function(){
       alert("test"); 
   }); 
})

respondido 08 nov., 11:19

$(document).ready(function(){
     $('#mainNavigation').live('click', function(){
       alert("test"); 
   }); 
})

respondido 08 nov., 11:19

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.