我实际上有两个问题,标题中的主题是主要问题。我在页面上有多个div元素标记为droppable。在这些div元素中,我有标记为可拖动的跨度。我想要它,所以当你拖动一个元素时,它会悬停在可放置的区域上,该区域要么突出显示,要么有边框,这样他们就知道可以将它放在那里。
作为次要问题,我所有的可拖动元素都有一个显示:块,宽度和浮动,所以它们在我的可放置区域看起来很漂亮。当物品被丢弃时,他们似乎得到了一个位置,因为它们不再像我的其他物品一样漂亮漂亮。作为参考,这是我的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();
}
答案 0 :(得分:44)
查看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!" );
}
});
答案 1 :(得分: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();
}
答案 2 :(得分:3)
仅供参考:hoverClass
已弃用,取而代之的是classes
选项。现在应该是:
$('.drop_div').droppable({
classes: {
'ui-droppable-hover': 'highlight'
},
drop: handle_drop_patient
});