У меня есть много элементов (плавающие теги href) в div с заданной высотой/шириной, с прокруткой, установленной в overflow: auto
в CSS.
Это структура divs:
<div id="tagFun_div_main">
<div id="tf_div_tagsReturn">
<!-- all the draggable elements go in here, the parent div scolls -->
</div>
<div id=" tf_div_tagsDrop">
<div id="tf_dropBox"></div>
</div></div>
родительский div, 'tf_div_tagsReturn' и 'tf_div_tagsDrop' будут в конечном счете плавать рядом друг с другом.
Вот jQuery, который запускается после того, как все "перетаскиваемые" элементы были созданы с именем класса "tag_cell",:
$(function() {
$(".tag_cell").draggable({
revert: 'invalid',
scroll: false,
containment: '#tagFun_div_main'
});
$("#tf_dropBox").droppable({
accept: '.tag_cell',
hoverClass: 'tf_dropBox_hover',
activeClass: 'tf_dropBox_active',
drop: function(event, ui) {
GLOBAL_ary_tf_tags.push(ui.draggable.html());
tagFun_reload();
}
});
});
как я уже говорил выше, перетаскиваемые элементы перетаскиваются в div 'tf_div_tagsReturn', но они визуально не перетаскиваются за пределы этого родительского div. Стоит отметить, что если я перетаскиваю один из перетаскиваемых элементов и перемещаю мышь над droppable div, с id 'tf_dropBox', тогда запускается hoverclass, я больше не могу видеть перетаскиваемый элемент.
Это мой первый запуск при использовании jQuery, поэтому, надеюсь, я просто пропущу что-то супер очевидное. Я до сих пор не читал документацию и поисковые форумы: (
UPDATE:
большое спасибо Jabes88 за предоставление решения, которое позволило мне достичь той функциональности, которую я искал. Вот что мой jQuery выглядел так:
$(function() {
$(".tag_cell").draggable({
revert: 'invalid',
scroll: false,
containment: '#tagFun_div_main',
helper: 'clone',
start : function() {
this.style.display="none";
},
stop: function() {
this.style.display="";
}
});
$(".tf_dropBox").droppable({
accept: '.tag_cell',
hoverClass: 'tf_dropBox_hover',
activeClass: 'tf_dropBox_active',
drop: function(event, ui) {
GLOBAL_ary_tf_tags.push(ui.draggable.html());
tagFun_reload();
}
});
});