2012-08-22 13 views
16

Estoy utilizando el componente ordenable jQuery-UI para arrastrar filas de tablas. Debido a mis requisitos, estoy creando un elemento auxiliar para mantener varias filas durante el arrastre.Controlar la altura del marcador de posición con jQuery-UI Clasificable

Parece que esto funciona, pero el espacio vacío insertado en la posición de arrastre actual es solo lo suficientemente alto para una sola fila. ¿Alguien puede ver por qué el marcador de posición no es tan alto como el contenido que estoy arrastrando?

Intenté configurar style="height:auto" en el elemento primario que se está arrastrando, pero esto no tiene ningún efecto.

He publicado mi código en jsFiddle en http://jsfiddle.net/jCNcv/. Si intenta arrastrar el elemento superior hacia abajo, puede ver que el marcador de posición vacío debajo de la posición de arrastre solo es lo suficientemente alto para una sola fila.

+0

Parece que usted está tratando de hacer algún tipo de sortables anidados? http://stackoverflow.com/questions/3308672/sortable-nested-lists-with-jquery-ui-1-8-2 – Nal

+0

No, no ordenables anidados. Basta con ordenar las filas de la tabla con * logical * parent/child relationships. Se implementan como filas regulares. –

Respuesta

59

El marcador de posición es solo el alto de una fila porque cada elemento ordenable es solo una fila. Puede establecer la altura del marcador de posición durante el evento de inicio a la altura de su elemento auxiliar.

start: function(e, ui){ 
    ui.placeholder.height(ui.helper.outerHeight()); 
}, 

Actualizado jsFiddle http://jsfiddle.net/jCNcv/2/

+0

Funciona a la perfección. Cambié para usar ui.helper.height() en lugar de outerHeight() porque quería que el marcador de posición tuviera la misma altura que el elemento de arrastre. –

Cuestiones relacionadas