在按钮单击事件上创建一个新的div。创建div后,由于jqueryui可拖式插件的帮助,它将变得可拖动。当我试图在另一个上面堆叠一个div时,我遇到了一个问题。最新创建的div元素将保持在顶部,不能与以前创建的div重叠。对于如何将div堆栈不受限制/仅限于最近创建div元素,有什么建议或解决方案吗?JSFIDDLE
Jquery
$('#button').click(function (e) {
/** Make div draggable **/
$('<div />', {
class: 'draggable ui-widget-content',
text: $('textarea').val(),
appendTo: '.middle-side',
draggable: {
containment: 'parent'
}
}).addClass('placement');
/** Contain draggable div **/
$('.middle-side').parent().mousemove(function(e){
var offset = $(this).offset();
var relX = e.pageX - offset.left;
var relY = e.pageY - offset.top;
$('.placement').css({'top': relY + 30,'left': relX + 10, 'position': 'absolute'});
})
});
/** Place a temporary dashed border on div after initial creation**/
$('.middle-side').on('click', function(e){
var offset = $(this).offset();
var relX = e.pageX - offset.left;
var relY = e.pageY - offset.top;
$('.placement').css({'top': relY,'left': relX, 'position': 'absolute' });
$(this).off("mousemove").find('.placement').removeClass('placement')
});
HTML
<textarea rows="4" cols="50" placeholder="Enter Text Here!"></textarea>
<br/>
<input type="button" id="button" value="Add Div with Text" />
<br/>
<div>
<div class="middle-side empty"></div>
</div>
发布于 2014-08-30 23:54:15
您应该比其他层更多地保留拖放层的z-index
。首先,在CSS中将position
和z-index
属性添加到.draggable
元素:
.draggable {
width: 150px;
height: 150px;
padding: 0.5em;
background:#FFFFDD;
position: relative;
z-index: 1;
}
在你的JS中:
// the counter
var z = 1;
$('<div />', {
class: 'draggable ui-widget-content',
text: $('textarea').val(),
appendTo: '.middle-side',
draggable: {
containment: 'parent',
// whenever the drag start
start: function( event, ui ) {
// set the z-index one more
$(this).css('z-index', ++z);
}
}
}).addClass('placement');
https://stackoverflow.com/questions/25589912
复制