saber removeattribute que hizo hecho elemento ejemplo dio detectar con capturar addattr jquery checkbox onclick

removeattribute - jQuery detecta qué elemento tiene un onClick



saber a que elemento se le dio click javascript (3)

Esto debería funcionar:

$(''.scrollTable tr'').click(function(event) { var $this = $( event.currentTarget ); if( $this.is( ''tr'' ) ) { $('':checkbox'', this).trigger(''click''); } });

Estoy intentando activar la casilla de verificación de la fila de la tabla cuando el usuario hace clic dentro de una fila de la tabla. Cada fila tiene una casilla de verificación.

Tengo el siguiente código que funciona bien como una versión estándar.

$(''.scrollTable tr'').click(function(event) { if(event.target.type !== ''checkbox'') { $('':checkbox'', this).trigger(''click''); } });

Los datos en la tabla a la que intento añadir esto tienen varios tipos, es decir, hay imágenes que crean ventanas emergentes, enlaces que crean información sobre herramientas y enlaces que redirigen a otra página. El problema que tengo es que al hacer clic en un enlace, imagen, etc., la casilla de verificación correspondiente está marcada.

¿Algunas ideas?


Propagación es el problema aquí. Cuando hace clic en una imagen o enlace, ese evento surge a través de los antepasados ​​y dispara el controlador de clic cuando alcanza el elemento <tr> . event.target se referirá al elemento cliqueado original. Debería ser más específico sobre los "tipos" que permite o no. Por ejemplo:

$(''.scrollTable tr'').click(function(event) { if(event.target.tagName == ''TD'') { $('':checkbox'', this).trigger(''click''); } });

Ejemplo de no permitir <a> , <img> y <input> utilizando un mapa de objeto:

$(''.scrollTable tr'').click(function(event) { var disallow = { "A":1, "IMG":1, "INPUT":1 }; if(!disallow[event.target.tagName]) { $('':checkbox'', this).trigger(''click''); } });


es probable que tengas que mirar hacia event.stopPropagation : esto debería detener el burbujeo del evento hasta la casilla de verificación