jQuery UI拖放与.trigger()

14

我正在尝试在没有鼠标/用户交互的情况下手动“触发”拖放操作。

到目前为止,我已经能够设置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'));
  });

提前感谢!


为了让事情更简单。我只想能够从droppable()之外的任何地方调用“drop”方法,但我始终需要能够指定事件和ui对象。

这不是一个答案,我只是不理解你的问题。如果没有与用户的交互,什么事件会触发拖放呢? - David Rhoden
没有特定的“事件”。我只需要模拟拖放过程以及在放下后发生的任何功能 - 就像用户实际上在拖放一样。可以将其视为打开一个已保存的文件... - user151419
它确实要求创建一个变量 drop_function = $(“#droppable”)。droppable('option','drop'); drop_function(); 但是在这个函数中我在哪里引用 #draggable? - user151419
你找到解决方案了吗?我此刻也在问自己完全相同的问题! - DA.
显示剩余2条评论
2个回答

2
为什么不创建一个由拖放触发的自定义事件?这样你就可以自己触发它:
$(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" ));  
});

0

我认为你想要的是:

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

但即使如此,我还是想知道可拖动的元素是否会像被拖放的那样到达可放置区域...

4
似乎我无法触发可放置区域上的“drop”事件。控制台没有错误提示,但也没有任何已触发的“drop”事件。 - DA.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接