2011-08-12 20 views
28

Tengo una pregunta simple. El siguiente código funciona para todas las etiquetas:Jquery onclick en div

$('*').click(function(e) { 
    alert(1); 
}); 

embargo, cuando intento este código para el div con id "contenido":

$('#content').click(function(e) { 
    alert(1); 
}); 

¿Qué estoy haciendo mal?

+0

No sé, ¿qué estás haciendo mal (como en el error/inesperado)? –

Respuesta

38

Asegúrese de que sea dentro de un documento listo tagAlternatively, trate de usar .live

$(document).ready(function(){ 

    $('#content').live('click', function(e) { 
     alert(1); 
    }); 
}); 

Ejemplo:

$(document).ready(function() { 
 
    $('#content').click(function(e) { 
 
     alert(1); 
 
    }); 
 
});
#content { 
 
    padding: 20px; 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="content">Hello world</div>

A partir de jQuery 1.7, el .live () el método está en desuso. Use .on() para adjuntar manejadores de eventos.

$('#content').on("click", function() { 
    alert(1); 
}); 
0

Control hacia fuera este fiddle ... lo estás haciendo correctamente. Asegúrate de que el ID esté contenido y también verifica que no haya otros elementos con el mismo ID. Si hay varios elementos con la misma identificación, se vinculará con la primera. Esa podría ser la razón por la que no lo ves.

+0

Gracias, otra cosa que me olvidé de mencionar es que cualquier otra etiqueta no funciona (cuerpo, html, etc ..) – CoachNono

8

Nada.

$('#content').click(function(e) { 
    alert(1); 
}); 

se unirá a un elemento HTML existente con el conjunto de ID para content, y puede mostrar un cuadro de mensaje en el clic.

  • Asegúrese de que #content existe antes de usar ese código
  • que el ID es única
  • Compruebe la consola Javascript de los errores o problemas
1

Que el div con id =" contenido "no se creará cuando se adjunta este evento? Puede probar el método de jquery en vivo().

Else puede haber varias Div con el mismo ID o simplemente deletreado mal, sucede ...

1

ajustar el código en el método o $(document).ready()$().

$(function(){ 

$('#content').click(function(e) { 
    alert(1); 
}); 

}); 
+0

Kool, No se olvide de marcar esto como una respuesta :) – ShankarSangoli

+1

Cada vez que desee encontrar cualquier elemento o adjuntar evento controlador a los elementos dom, asegúrese de hacerlo en el método '$()' o '$ (document) .ready()'. '$ (" * ")' funciona porque adjunta evento al documento y usa el mecanismo de evento bubling para ejecutar los manejadores de eventos. – ShankarSangoli