http://jsbin.com/IZodOSU/1/edit
所有具有拖放类的div都应该是可拖动的,但是当一个div被追加时,它是不可拖的。有人能帮我解决这个问题吗?
<script src="http://threedubmedia.com/inc/js/jquery-1.7.2.js"></script>
<script src="http://threedubmedia.com/inc/js/jquery.event.drag-2.2.js"></script>
<script src="http://threedubmedia.com/inc/js/jquery.event.drag.live-2.2.js"></script>
<button id="divgen">Gen Div</button>
<div class="container">
<div class="drag" style="left:20px;"></div>
<div class="drag" style="left:100px;"></div>
<div class="drag" style="left:180px;"></div>
</div>CSS
.drag {
position: absolute;
border: 1px solid #89B;
background: #BCE;
height: 58px;
width: 58px;
cursor: move;
top: 120px;
}JS/JQuery
jQuery(function($){
$('.drag').drag(function( ev, dd ){
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
});
$("#divgen").click(function() {
$("div.container").append('<div id="whatever" class="drag">my div</div>');
});
});发布于 2013-08-31 07:17:56
试试下面的。您必须使用委托,因为DIV是动态创建的。
$('.container').on('drag','.drag',(function( ev, dd ){
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
}));发布于 2013-08-31 07:16:24
由于这个div是新添加到DOM中的,所以在$(“#divgen”).click(.)中您需要重新运行拖动函数。
发布于 2013-08-31 07:19:18
在追加新的div后再次调用拖放函数。
jQuery(function($){
$('.drag').drag(function( ev, dd ){
$( this ).css({
top: dd.offsetY,
left: dd.offsetX
});
});
$("#divgen").click(function() {
$("div.container").append('<div id="whatever" class="drag">my div</div>');
$('.drag').drag(); // Call drag function.
});
});https://stackoverflow.com/questions/18545604
复制相似问题