JQuery UI Drag and Drop с .trigger()

Я пытаюсь "запускать" перетаскивание вручную без взаимодействия мыши/пользователя.

До сих пор я смог настроить jQuery UI demo для перетаскивания, но не смог вызвать перетаскивание с помощью метода trigger().

Может кто-нибудь помочь с настройкой?

Мой код до сих пор:

  $(function() {
      $( "#draggable" ).draggable();
      $( "#droppable" ).droppable({
      drop: function( event, ui ) {
        $( this )
        .addClass( "ui-state-highlight" )
        .find( "p" )
        .html( "Dropped!" );
      }
    });

    $('#draggable').trigger("drop", $('#droppable'));
  });

Спасибо заранее!


Сделать вещи проще. Все, что я хочу сделать, это вызвать метод "drop" из любого места за пределами droppable(), но мне всегда нужно будет указать объекты события и ui.

Ответы

Ответ 1

Почему бы не создать настраиваемое событие, вызванное падением? Таким образом, вы можете запускать его самостоятельно:

$(function(){
    $( "#draggable" ).draggable();
    $( "#droppable" ).droppable({
        drop: function( event, ui ) {
            $(this).trigger("customEvent", ui);
        }
    });
    $( "#droppable" ).bind("customEvent", function(event, ui ){         
        $( this )
                .find( "p" )
                    .html( "Dropped!");
    });  
   $( "#droppable" ).trigger("customEvent", $( "#draggable" ));  
});

Ответ 2

Я думаю, что вы хотите:

$('#droppable').trigger('drop', $('#draggable'));

Но даже тогда мне интересно, сможет ли перетаскиваемый элемент перейти к droppable, как то, что упало...