34

私は実際に2つの質問があります。タイトルのオンがメインの質問です。ドロップ可能としてマークされたページに複数のdiv要素があります。これらのdiv要素の中に、ドラッグ可能としてマークされたスパンがあります。要素をドラッグしていて、ドロップ可能な領域にカーソルを合わせると、その領域がハイライトされるか境界線が表示されるので、そこにドロップできることがわかります。

二次的な質問として、私のドラッグ可能なすべての要素にはdisplay:block、width、floatが付いているので、ドロップ可能な領域ではきれいに見えます。アイテムがドロップされると、他のアイテムのようにきれいに浮かぶことがなくなるため、位置が設定されているように見えます。参考までに、これが私のjavascriptです。

$('.drag_span').draggable({
    revert: true
});
$('.drop_div').droppable({
    drop: handle_drop_patient
});

function handle_drop_patient(event, ui) {
    $(this).append($(ui.draggable).clone());
    $(ui.draggable).remove();
}
4

3 に答える 3

48

http://jqueryui.com/demos/droppable/#visual-feedbackを確認してください。

元:

$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
    hoverClass: "ui-state-active",
    drop: function( event, ui ) {
        $( this )
            .addClass( "ui-state-highlight" )
            .find( "p" )
                .html( "Dropped!" );
    }
});
$( "#draggable2" ).draggable();
$( "#droppable2" ).droppable({
    accept: "#draggable2",
    activeClass: "ui-state-hover",
    drop: function( event, ui ) {
        $( this )
            .addClass( "ui-state-highlight" )
            .find( "p" )
                .html( "Dropped!" );
    }
});
于 2012-03-26T20:49:21.660 に答える
18

これは、ホバーにハイライトを追加するために機能するはずです。

$('.drop_div').droppable({
     hoverClass: "highlight",
     drop: handle_drop_patient,
});

次に、境界線を設定したり、背景色などを変更したりするハイライト用のcssクラスを作成します。

.highlight {
    border: 1px solid yellow;
    background-color:yellow;
}

位置に関する限り、ドロップが完了したらcssを再適用できます。

function handle_drop_patient(event, ui) {
     $(this).append( $(ui.draggable).clone().css({'float':'left','display':'block'}) );
     $(ui.draggable).remove();
}
于 2012-03-26T21:00:14.570 に答える
9

参考:オプションhoverClassを優先して非推奨になりました。classesこれで、次のようになります。

$('.drop_div').droppable({
    classes: {
      'ui-droppable-hover': 'highlight'
    },
    drop: handle_drop_patient
});
于 2016-10-21T14:06:24.803 に答える