Al hacer clic en los elementos en jQuery se produce una burbuja hasta el cuerpo. Si tenemos un manejador de clics enlazado al cuerpo que muestra una alerta, al hacer clic en cualquier elemento, se activará el cuerpo y se activará la alerta. Mi pregunta es, ¿hay alguna manera de saber si la alerta corporal se activó como resultado de un clic directo al cuerpo, o se activó el clic debido a una burbuja hasta el cuerpo?¿Hay alguna manera de verificar si la burbuja activó el clic?
Respuesta
Comparar event.target
a . this
es siempre el evento donde está vinculado el controlador; event.target
es siempre el elemento donde se originó el evento.
$(document.body).click(function(event) {
if (event.target == this) {
// event was triggered on the body
}
});
En el caso de elementos que sabes que es único en un documento (básicamente, simplemente body
) se puede consultar también la nodeName
de this
:
$(document.body).click(function(event) {
if (event.target.nodeName.toLowerCase() === 'body') {
// event was triggered on the body
}
});
que tiene que hacer toLowerCase()
porque el caso of nodeName
es inconsistente en todos los navegadores.
Una última opción es comparar a un ID si su elemento tiene uno, porque estos también tienen que ser únicos:
$('#foo').click(function(event) {
if (event.target.id === 'foo') {
// event was triggered on #foo
}
});
Gracias por las explicaciones. – Pinkie
Hombre, muchas gracias! :) –
puede comprobar lo que se ha hecho clic con event.target
:
$(something).click(function(e){
alert(e.target)
})
El parámetro "evento" se pasa al manejador tiene una propiedad "objetivo", que se refiere al elemento que fue el blanco directo del evento. Puede verificar esa propiedad para ver si es el elemento <body>
.
Tenga en cuenta que la instalación jQuery ".delegate()" se puede utilizar para hacer esa comprobación por usted.
- 1. ¿Hay alguna manera de verificar si el anclaje está activo?
- 2. ¿Hay alguna manera de verificar si el puntero está colgando?
- 3. JS ¿Hay alguna manera de verificar si existe un evento?
- 4. ¿Mejor manera de verificar si hay elementos en la lista?
- 5. ¿Hay alguna manera de verificar si hay enlaces simbólicos apuntando a un directorio?
- 6. En .NET MVC, ¿hay alguna manera fácil de verificar si estoy en la página de inicio?
- 7. ¿Hay alguna manera de verificar si dos colecciones contienen los mismos elementos, independientemente de la orden?
- 8. ¿Hay alguna manera de verificar si la firma de una aplicación se depura o publica?
- 9. ¿Hay alguna manera de verificar si se aplica el modo estricto?
- 10. ¿Hay alguna manera de verificar si un usuario realmente calificó su aplicación?
- 11. ¿Alguna manera de verificar si una XmlSchemaParticle es una EmptyParticle?
- 12. ¿Hay alguna manera de verificar si existe un directorio en los archivos de configuración de Apache?
- 13. ¿Hay alguna manera de verificar si un proceso de impresión fue exitoso?
- 14. ¿Hay alguna manera de verificar si una construcción está en Adhoc, lanzamiento, distribución mediante programación?
- 15. ¿Hay alguna manera de verificar si se abrió una istream en modo binario?
- 16. ¿Hay alguna manera de verificar si se define una función de VBScript?
- 17. ¿Hay alguna manera de verificar document.ready() si jQuery no está disponible?
- 18. ¿Hay alguna manera de verificar si dos elementos DOM son iguales?
- 19. ¿Hay alguna manera de crear una cola en una burbuja con HTML 5?
- 20. ¿Hay alguna manera de verificar si una cookie está httponly en PHP
- 21. ¿Hay alguna manera de verificar si dos objetos tienen alias en Java?
- 22. ¿Hay alguna manera de verificar si una variable es una fecha en JavaScript?
- 23. ¿Hay alguna manera de verificar si una variable es un número entero? C++
- 24. ¿Hay alguna manera rápida de verificar si CUALQUIER columna es NULA?
- 25. ¿Hay alguna manera de omitir el parámetro?
- 26. ¿Alguna manera de verificar funciones anónimas?
- 27. ¿Hay alguna manera de obtener la palabra en el menú contextual en una extensión de Firefox?
- 28. ¿Hay alguna manera de verificar la codificación del conjunto de caracteres del archivo .txt con Java?
- 29. (Rieles) ¿Hay alguna manera de verificar el tipo de datos del campo?
- 30. ¿Hay alguna manera de verificar el permiso de manifiesto del código?
lo que haga, tenga cuidado con stopPropagation. Eso romperá todas las llamadas '.live'. –