Pregunta

Tablesorter un plugin de jQuery (estoy seguro de otros conocimientos al respecto) en mi proyecto. Tengo que añadir una característica que cuando los usuarios hacen clic en una fila, que se ha seleccionado. He probado el siguiente código, pero no su trabajo a cabo.

$('#myTable tr').click(function(event) {
     $(this).addClass('selected');

 });

Podría alguien decirme la mejor manera de hacerlo? ¿Hay alguna enchufable ya para esto?

Gracias de antemano, España Abdel Olakara

¿Fue útil?

Solución

Creo que Tablesorter recrea toda la tabla de modo que podría ser por qué no hay ningún cambio, ya que "destruye" el evento click unido a la tr. Debe probarlo utilizando un evento en vivo y ver si funciona: Documentación de eventos en directo en jQuery.com

Otros consejos

Para permitir seleccionar y anular la selección de alternar a través de toggleClass de jQuery:

$(document).ready( function() {
    /* jQuery v1.11.1 */
    $( "table.tablesorter tbody tr" ).click(function() {
      $( this ).toggleClass( "selected" );
    });
});

/* CSS for hover row & select/lock the row with color */
table.tablesorter tbody tr:hover td {
    background-color: #f4f5f6;
}
table.tablesorter tbody tr.selected td {
    background-color: #f4f5f6;
}

Eso parece correcto para mí. ¿Tiene una clase CSS definido para tr.selected?

Tal vez cuando se está haciendo clic, se golpea el elemento td y no tr. Tal vez es necesario utilizar la matriz:

http://docs.jquery.com/Traversing/parent

algo como esto (no probado):

$('#myTable td').click(function(event) {
         $(this).parent("tr").addClass('selected');

 });

Lo que tienes parece correcta. ¿Está ejecutando después de que el documento está listo?

$(function() {
    $('#myTable tr').click(function() {
         $(this).addClass('selected');
    });
});

Como alternativa, se puede usar live eventos.

$('#myTable tr').live('click', function() {
     $(this).addClass('selected');
});

Su evento click parece funcionar muy bien en mi mesa, me pregunto cómo se anule la selección haciendo clic de nuevo? atar una variable de si se selecciona es que parece una solución fácil, pero ¿cómo iba a hacer eso?

Pardon mi responder a su pregunta con otra pregunta y mi novedad de JS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top