I already reproduced the problem ;)
This is because tabs hide the container and all it's content on change. Even if you try to set items to show using activate
event since main container is already hidden it won't show individual items. So you have to literally move draggable items into droppable area. Here is the code.
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!");
}
});