Estoy tratando de establecer condiciones en un evento jQuery. Tengo un elemento de entrada y un div. Quiero detectar un clic en cualquier lugar de la página y ejecutar ese método, pero solo si el clic no está en la entrada o div.Excluir evento de clic según la condición?
Respuesta
Uso del jQuery click() o en vivo (funciones) y compruebe el destino del evento clic mediante la función de jQuery es().
- evento se unen clic en el documento
- si el objetivo no es de entrada o div continuar
.
$(document.body).click(function(e) {
if(!$(e.target).is("input, div")) {
console.log("Run function because image or div were not clicked!");
}
});
Ejemplo página web =>http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-document-click-exclusion.html
Ejemplo de salida firebug después de hacer clic en torno de ejemplo, la página
@Mike No hay necesidad de pasarlo al nodo de documento. El elemento BODY es suficiente. –
Gracias, mike, tu ejemplo funcionó muy bien :-) – tmutton
@ Šime, a la derecha. Gracias. –
Asigne básicamente un manejador de clics al cuerpo de la página, luego pruebe el Elemento objetivo del evento para ver si el ID de ese elemento objetivo coincide con su div o su entrada.
$("body").click(function(evt) {
var targetElementId = evt.target.id;
if (!(targetElementId == "yourDivID" || targetElementId == "yourinputId"))
{
// your event code here.
}
});
usa $ (event.target) ya que está normalizado por el objeto de evento jquery. http://api.jquery.com/event.target/ –
No tiene que normalizar el objeto de evento. jQuery hace eso por ti. –
@Sime Vidas ... sí solo es habbit ... –
Algo como esto debería funcionar.
$('body').click(function(event){ // body click
var $target = $(event.target); // click target
if($target.is('#mydiv, #myinput')) { // click target is div or input
$target.click(); // click div or input
}
});
var input = $("#yourInput")[0];
var div = $("#yourDiv")[0];
$(document.body).click(function(e) {
switch (e.target) {
case input: case div: return;
}
yourMethod();
});
Ejemplo para excluir elementos específicos usando un comodín:
$("#mydiv li").click(function(e){
var Target = new String(e.target.id);
// prevent action when a element with id containing 'img_' is clicked
if(!Target.match(/img_/)) {
// do something
}
});
- 1. ¿cómo selecciono una columna según la condición?
- 2. Matlab - Seleccionar fila específica según la condición
- 3. Eliminar elemento duplicado de la lista según la condición
- 4. Formato de color de datos de campo según la condición
- 5. Consulta SQL: selección de registros según la condición de conteo
- 6. Buscar índices en dos listas según la condición de elementos
- 7. WPF TextBlock resaltar ciertas partes según la condición de búsqueda
- 8. Jquery clic evento propagación
- 9. Linq: cómo excluir la condición si el parámetro es nulo
- 10. ¿Dividir una colección en partes según la condición con LINQ?
- 11. Variable de condición de Windows vs. Evento
- 12. Cómo filtrar un diccionario según una función de condición arbitraria?
- 13. jQuery "post-clic" evento
- 14. Establezca una propiedad en WiX según una condición
- 15. ¿Cómo dividir una matriz según una condición en numpy?
- 16. ¿Cómo se actualiza la columna en una tabla de otra tabla según la condición?
- 17. excluir fines de semana para hacer clic en jQuery datepicker
- 18. C# Autocompletar evento de clic de Texbox
- 19. WP7 - ¿Evento de clic de imagen?
- 20. Winforms - eliminar visualmente clic de botón evento
- 21. agregando un evento de clic a fullcalendar
- 22. Vincular evento de clic en la opción de selección
- 23. Acordeón de JQuery - Desvincular clic en evento
- 24. Colorea las filas de la tabla de datos según una condición en JSF 2
- 25. Escuchando evento de clic en ListView
- 26. Añadir evento de clic a document.createElement ("th")
- 27. Recibiendo el evento de doble clic
- 28. JQuery .Clone() pierde el evento de clic
- 29. d3 clic y evento de arrastre anidación
- 30. Haga clic en Evento de hipervínculo
Así ¿Estás diciendo que quieres ser capaz para llamar a una función cada vez que un usuario hace clic en la página y no está en la entrada o div? –