Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

294
Visualizações
Mover un elemento mediante programación con jQuery ordenable sin dejar de activar eventos

Estoy usando jQuery Sortable. Tengo la configuración de HTML así:

 <ul id='plan'> <li class='item'>1</li> <li class='item'>2</li> <li class='item'>3</li> <li class='item'>4</li> </ul>

Quiero mover mediante programación un <li> a una posición diferente. Puedo lograr esto con el siguiente JS:

 $("#plan li:eq(1)").insertAfter($("#plan li:eq(2)"));

Esto funciona bien, excepto que no activa los eventos ordenables como cambio o actualización. Tengo una función que se ejecuta en el evento de actualización de ordenable, pero mover el li con JS no lo activa.

¿Alguien sabe cómo activar el evento de actualización ordenable?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

$("selector").trigger("sortupdate");

tal vez tendrá que pasar como segundo argumento una función donde colocar el evento y la interfaz de usuario, el evento no es tan importante como la interfaz de usuario

el código interno del widget clasificable para la activación de eventos se ve así

 this._trigger("update", event, this._uiHash(this));

Así que es posible que desee hacer lo siguiente

 function triggerUpdateFor(selector) { var widget = $(selector).sortable("widget"); if (widget) widget._trigger("update", null, widget._uiHash(widget)); }
over 4 years ago · Santiago Trujillo Relatório

0

Use el método de option de ordenable (para recuperar sus devoluciones de llamada)

Como cada devolución de llamada de evento se define como una opción del widget clasificable, se puede recuperar como tal llamando al método de opción para la opción de devolución de llamada de evento correspondiente (este ejemplo usa la devolución de llamada de update ):

 $('#plan').sortable({ update: function(event, ui) { // Do something... } }); $('#plan').sortable('option', 'update'); // returns function

La devolución de llamada de actualización espera dos parámetros , el event y un ui object . El event se puede establecer en nulo y el ui object debe definirse con todas las propiedades que espera su update callback :

 $('#plan').sortable('option','update')( null, { item: $('<li>new item</li>').appendTo($('#plan')) } );

Esto funciona para todas las devoluciones de llamada de eventos que definió (es decir, receive , change , etc.).

Trabajo JS-violín

over 4 years ago · Santiago Trujillo Relatório

0

El método de trigger acepta parámetros adicionales, por lo que si necesita el parámetro ui , deberá pasarlo usted mismo. Pero por lo general, solo desea el objetivo ui.item y, en este caso, sabe qué es:

 var sortupdate = function (event, ui) { // do something with ui.item }; var $plan = $("#plan"); $plan.sortable({ update: sortupdate }); $plan.on("sortupdate", sortupdate); // sortupdate is not automatically bound var $item = $("#plan li:eq(1)"); $item.insertAfter($("#plan li:eq(2)")); $plan.trigger("sortupdate", { item : $item });

Manifestación:

http://jsfiddle.net/D7fCz/3/

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda