3

ドラッグされた要素がどこにあるかというコンテキストに基づいて、ドラッグ可能なヘルパーを変更しようとしています(ヘルパーを変更することで要素をそこにドロップできることを示します)。

私の頭の中には2つのアイデアがありました。

  1. ヘルパーを関数として宣言し、適切なヘルパーを返します。残念ながら、関数はドラッグの開始時に1回だけ呼び出されます。

  2. ドラッグイベントで、ヘルパーを変更します。これは最良の選択肢のように聞こえます。問題は、ヘルパーを特定のDOM要素に変更する方法が見つからないことです(受け入れられる値は「クローン」、「元の」、および関数のみです)。

私は何かが足りないのですか、それともこれは不可能ですか?

4

2 に答える 2

3

ドラッグイベント内でヘルパーにアクセスできます。

$('#list').draggable({helper:'clone'});

$("#list").bind("drag", function(event, ui) {
    ui.helper.css("background-color", "red");
});

UIパラメータは、ドラッグされた要素を参照します。ui.helperは現在のヘルパーのインスタンスであり、その場で変更できます。

于 2012-07-24T21:32:35.433 に答える
0

私の場合、ドラッグ可能オブジェクトはAdobe Edgeのシンボルであったため、ドラッグで変更できる「レイヤー」の1つをクラスにシードする必要がありました。したがって、シンボルが作成されたとき、私はこれを行いました。

drag.$("drag_label").addClass("dragLabel");

このクラスの割り当ては、(オブジェクトデータとは異なり)ヘルパーで複製され、ドラッグ可能な内部でこれを行うことができます。

start: function(event, ui) {
    $(ui.helper).find(".dragLabel").css("color", "#FF0000");
    ...
},
于 2014-11-26T17:56:48.423 に答える