He buscado STACKOVERFLOW y otros foros para la solución a mi problema - si he olvidado una solución de trabajo, apúntame hacia ella.Jquery UI ordenable - realizar una acción ANTES de iniciar el evento de incendios
Mi problema: Cada vez que arrastro un elemento (un portlet div) en mi lista sortable, necesito realizar alguna acción ANTES de que comience el proceso de arrastre (por lo que entiendo antes de que se active el evento START).
Para ser más específicos: Mis DIV brindan al usuario la posibilidad de extender/colapsar su cuerpo (como en el ejemplo aparece en la página de la interfaz de usuario de jquery http://jqueryui.com/demos/sortable/#portlets).
Cada vez que arrastro un elemento me gustaría disparar mi método de colapso de modo que el único elemento visual que se arrastra sea el DIV colapsado.
Sin embargo cada vez que llamo mi método (algo así)
$someitem.trigger("toggle.somenamespace")
funciona como se esperaba, excepto que la altura del ayudante arrastrado se calcula antes del evento de inicio se disparó en el ordenable y por lo tanto el ayudante tiene la altura del elemento original en su estado sin colapsar.
Mi pensamiento original sobre esto fue: como el ordenable tiene, por ejemplo, la posibilidad de medir una distancia de arrastre antes de que comience el procedimiento de arrastre real (con la opción: distancia) debería ser posible enganchar en este flujo, por ejemplo, almacenar la función original startDrag (o lo que se llame) del ordenable widget en una var temporal, anularlo con una devolución de llamada personalizada que primero activa mi funcionalidad de colapso y luego llama a la función original para garantizar que la altura se calcule correctamente. Sin embargo, hasta ahora no he tenido mucho éxito con este enfoque ...
Tenga en cuenta que establecer las propiedades de CSS en los controladores para el arrastre o sobre un evento de la clasificación no tiene el efecto deseado, ya que la altura widget ordenable calculado para el ayudante se establece como propiedades del elemento.
O - probablemente alguien sepa una mejor manera de afectar la altura del helper que se muestra durante el proceso de arrastre, es mi opinión que mi enfoque original (cambiar el elemento antes del proceso de arrastre y luego dejar que el widget lo haga sus cálculos la forma en que se intented) sería una mejor solución ...
gracias por cualquier ayuda, Matthias
EDIT: el establecimiento del indicador se puede ordenar: forceHelperSize a la verdadera y ajuste de la ui.item/ayudante Tampoco funciona el tamaño en el arrastrador de inicio, ya que da como resultado el efecto deseado visualmente (solo se arrastra el elemento contraído, pero impide que el elemento sea arrastrado hacia abajo (como si el elemento aún tuviera la altura en su estado no plegado) probado con un ayudante: 'original' y 'clon'
En lugar de hacer una cada uno, sería mejor para seleccionar '.handle' en el mousedown y luego utilice $ (esto) dentro de la función mousedown que debería hacer referencia al elemento correcto? –
También debe verificar mousemove. mousedown podría significar un clic normal. – Blaise