15

ドロップイベントハンドラーを備えたドロップ可能ファイルがあります。

$(this).droppable({
  drop:function(){
    console.log('OMG You Dropped It!');
  }
});

私はドラッグ可能です:

$(this).draggable();

私がやりたいのは、実際にドラッグ可能をドラッグアンドドロップせずにドロップ可能でドロップイベントハンドラーをトリガーすることです。動作を物理的に実行せずに、実際の動作をシミュレートしたいと思います。

私はこのようなことができると思いました:

$(droppable).trigger('drop', [draggable]);

残念ながら、それはそれほど単純ではありません。誰かが私がこれを達成する方法を知っていますか?

4

3 に答える 3

11

dropハンドラーのコードを別の関数に移動する必要があります。
その後、ハンドラーと他の場所の両方で関数を呼び出すことができます。

于 2010-07-06T16:22:59.833 に答える
9

option-methodを使用して、ドロップ呼び出しに関連付けられた関数をトリガーできます。

$("#droppable").droppable({
        drop: function(event, ui) {
            do stuff }
    });
var drop_function = $("#droppable").droppable.option('drop');
drop_function();

このようにして、droppableに何かをドロップしたときに何が起こるかを知ることができます。もちろん、関数を割り当てる代わりに、関数を実行することもできます。それでも、明確にするために、ドロップする関数を割り当てて、別の場所で定義することをお勧めします。

于 2010-09-05T17:30:35.820 に答える
1

の回答にStuperUser基づいて指摘されているように、jQueryの最近のバージョンでは、次のことを行う必要があります。ajmurmann

$("#droppable").droppable({
    drop: function(event, ui) {
        do stuff }
});
var drop_function = $("#droppable").droppable('option', 'drop');
drop_function();
于 2016-08-09T14:12:58.850 に答える