2011-02-26 28 views
5

Actualmente estoy tratando de conseguir una alerta a suceder cuando se hace clic en algo. Puedo conseguir que funcione en jsFiddle, pero no en el código de producción:jQuery selector de clase y haga clic()

jsFiddle example that works (jQuery 1.5 cargado)
HTML (en el caso jsFiddle es inaccesible):

<!DOCTYPE HTML><html><head><title>Test</title></head> 
<body> <h1>25 Feb 2011</h1><h3>ABC</h3><ul> 
     <li class="todoitem">Test&mdash;5 minutes</li> </ul> 
</body></html> 

Javascript:

$(".todoitem").click(function() { 
alert('Item selected'); 
}); 

Ejemplo de producción no operativa:

<!DOCTYPE HTML><html><head><title>Test</title> 
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
     $(".todoitem").click(function() { 
     alert('Item selected'); 
     }); 
    </script> 
</head> 
<body> 
<h1>25 Feb 2011</h1><h3>ABC</h3><ul><li class="todoitem">Test&mdash;5 minutes</li></ul> 
</body> 
</html> 

Inspector de Safari indican que jQuery se carga correctamente, por lo que no es el tema. Por lo que puedo decir, estas dos piezas de código son esencialmente idénticas, pero esta última no está funcionando. ¿Alguien puede ver lo que he hecho mal?

Respuesta

18

Es necesario para envolver el código en $ (document) ready()

Esto funcionará

$(document).ready(function(){ 
     $(".todoitem").click(function() { 
      alert('Item selected'); 
     }); 
}); 

jsFiddle hace esto de forma automática

+0

Sip. Esto es correcto. – Kranu

2

Envuelva el código dentro de

$(function(){ 

}) 

Y tiene el código de trabajo

$(function(){ 

    $(".todoitem").click(function() { 
     alert('Item selected'); 
    }); 

})