我已经重现了这个问题;)
这是因为标签隐藏了容器及其所有内容的变化。即使您尝试使用activate 事件将项目设置为显示,因为主容器已经隐藏,它也不会显示单个项目。所以你必须从字面上将可拖动的项目移动到可放置区域。这是代码。
HTML
<div id="droppable" class="ui-widget-header">
<p>Drop here</p>
</div>
<div id="tabs">
<ul>
<li><a href="#fragment-1"><span>One</span></a>
</li>
<li><a href="#fragment-2"><span>Two</span></a>
</li>
<li><a href="#fragment-3"><span>Three</span></a>
</li>
</ul>
<div id="fragment-1">
<div id="draggable" class="ui-widget-content">
<p>Drag me to my target</p>
</div>
</div>
<div id="fragment-2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</div>
<div id="fragment-3">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</div>
</div>
CSS
#draggable {
width: 100px;
height: 100px;
padding: 0.5em;
margin: 10px 10px 10px 0;
}
#droppable {
width: 150px;
height: 150px;
padding: 0.5em;
margin: 10px;
}
jQuery
$("#tabs").tabs();
$("#draggable").draggable();
$("#droppable").droppable({
drop: function (event, ui) {
var $x = ui.draggable;
$x.appendTo($("#droppable")).css({
top:0,
left:0
});
$(this)
.addClass("ui-state-highlight")
.find("p")
.html("Dropped!");
}
});
小提琴
JSFiddle Example