tengo el siguiente código HTML en un archivo JSP:jQuery - Haga clic evento en <tr> elementos con una mesa y conseguir <td> elemento valora
<div class="custList">
<table class="dataGrid">
<c:forEach var="cust" items="${custList}">
<tr>
<td>${cust.number}</td>
<td>${cust.description}</td>
<td>${cust.type}</td>
<td>${cust.status}</td>
</tr>
</c:forEach>
</table>
</div>
tengo que ser capaz de desencadenar un evento 'click'
en cada una de las creado dinámicamente etiquetas <tr>
y también poder acceder a los valores de las etiquetas <td>
(del <tr>
cliqueado) desde la función de JavaScript. Ya tengo esta función, pero lamentablemente no parece estar funcionando.
$(document).ready(function() {
$("div.custList > table > tr").live('click', function() {
alert("You clicked my <tr>!");
//get <td> element values here!!??
});
});
actualización (enero 2016): jQuery.live es obsoleto (como se ha señalado aquí: http://api.jquery.com/live/)
A partir de jQuery 1.7, es obsoleto método de la .live(). Utilice .on() para adjuntar controladores de eventos.
+1 Acabo de descubrir esto el otro día. – sje397
no sabía acerca de la inserción de la etiqueta
. Gracias por la ayuda, funciona bien. :) –De nada. – BalusC
$(this).find('td')
le dará una variedad de td en el tr.Fuente
2010-08-11 13:09:56 VeeWee
Tenga en cuenta que esto también devolverá todos los '
Pruebe la función de jQuery
delegate()
, así:Un delegado funciona de la misma manera que
live()
excepto quelive()
no puede aplicarse a los elementos encadenados, mientras quedelegate()
le permite especificar un elemento dentro de un elemento de guiarse por.Fuente
2010-08-11 13:15:00 SimonDowdles
A partir de jQuery 1.7, .delegate() ha sido reemplazado por el método .on(). – azerafati
Esta respuesta (con la actualización de @Bludream) es la forma más eficiente de vincular eventos, ya que no tiene que enlazar para cada tr, solo en el elemento padre (que es la tabla en nuestro caso). – graumanoz
Como los elementos TR envuelven los elementos TD, en realidad lo que está haciendo clic es en el TD (que luego sube hasta el TR) para simplificar su selector. Obtención de los valores es más fácil de esta manera también, el TD hecho clic es esto, el TR que lo envuelve es this.parent
cambiar su código javascript para lo siguiente:
Fuente
2010-08-11 13:25:47 JKirchartz
Fuente
2015-01-21 13:37:11
Fuente
2016-03-14 09:27:43
Este ¡trabaja para mi!
Fuente
2017-06-22 20:46:19
Cuestiones relacionadas