Как выделить область перетаскивания при наведении с помощью jQuery ui draggable
У меня на самом деле есть два вопроса, on в названии является основным. У меня есть несколько элементов div на странице, помеченной как droppable. Внутри этих элементов div, у меня есть пролеты, которые помечены как таковым. Я хочу, чтобы это было так, когда вы перетаскиваете элемент, и он завис над капельной областью, которая либо выделяет, либо имеет границу, чтобы они знали, что могут ее там бросить.
в качестве вторичного вопроса все мои перетаскиваемые элементы имеют дисплей: блок, ширину и поплавок на они, поэтому они выглядят красиво и аккуратно в моих droppable областях. Когда предметы отбрасываются, они, кажется, получают положение, установленное для них, поскольку они больше не плавают красиво и аккуратно, как остальные мои предметы. Для справки, вот мой 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();
}
3 ответов
проверить http://jqueryui.com/demos/droppable/#visual-feedback.
Ex:
$( "#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!" );
}
});
Это должно работать для добавления выделения при наведении.
$('.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();
}
FYI:hoverClass
был осужден в пользу classes
. Теперь должно быть:
$('.drop_div').droppable({
classes: {
'ui-droppable-hover': 'highlight'
},
drop: handle_drop_patient
});