2011-05-13 20 views
6

Tengo un ejemplo de trabajo de la función jQuery UI Sortable. Lo estoy aplicando a una tabla HTML para arrastrar y soltar y ordenar las filas de la tabla. Funciona muy bien, excepto que quiero excluir ciertas clases de fila de ser ordenables. Utilizando el parámetro items, puedo excluir satisfactoriamente UNA clase (la clase "list-button-bar"), pero no puedo entender la sintaxis de cómo excluir más de una clase. Por ejemplo, quiero excluir <th> y otras clases de <tr>.jQuery UI Clasificable: ¿cómo incluir/excluir múltiples "elementos"?

Este es probablemente uno de los que está en la documentación, pero aún no estoy lo suficientemente familiarizado con jQuery UI para saber incluso qué buscar.

Aquí está el código de trabajo:

<script> 
    $(function() { 
     $("#applications_list tbody.list-tbody").sortable({ 
     items: "tr:not(.list-button-bar)", 
     cursor: 'crosshair' 
     }); 
     $("#applications_list tbody.list-tbody").disableSelection(); 

    }); 
</script> 

Respuesta

14

¿Ha intentado utilizar una coma? La opción items lleva un selector de jQuery:

$("#applications_list tbody.list-tbody").sortable({ 
    items: "tr:not(.list-button-bar), :not(th)", // Excludes <tr>s without a class and <th>s 
    cursor: 'crosshair' 
    }); 
+0

Gracias. "selector de jQuery": ¡esa era la palabra clave mágica que necesitaba! Una vez que supe lo que estaba buscando, fue fácil de encontrar. Este documento lo explica bastante bien (en realidad lo explica mucho mejor que la versión más nueva del mismo documento, que es totalmente antipático para un novato) http://docs.jquery.com/DOM/Traversing/Selectors Al final , Descubrí que era más fácil simplemente incluir los artículos de que quería usar: "tr: ​​.even, .odd", Una cosa que fue completamente la desafortunada coincidencia de que mi formulario tiene clases llamadas "par" e "impar" , que son palabras clave selectoras Agregar el punto al frente resolvió eso. – TrojanName

+0

@Brian: Ah, vale. Bueno, me alegro de poder ayudar :) –

1

En jQuery UI 1.8 usa la siguiente:

$("#applications_list tbody.list-tbody").sortable({ 
    // Excludes <tr>s without a class and <th>s 
    filter: "tr:not(.list-button-bar), :not(th)" 
}); 
+1

Buen enfoque, me gusta! – TrojanName

2

Para excluir varias clases de uso tr:

$("#applications_list tbody.list-tbody").sortable({ 
     items: "tr:not(.list-button-bar,.other-class1,.other-class2)", 
     cursor: 'crosshair' 
}); 
Cuestiones relacionadas