答案 0 :(得分:0)
你已经通过这样做了一些在可拖动的HTML中硬编码的元素:
$( 'seleccionable')。可拖动({ drag:function(e,ui){ $( '#status_nombre')HTML($(本).attr( '身份证')); $( '#status_top')ATTR( '值',$(本)的.css( '顶')); $( '#STATUS_LEFT')ATTR( '值',$(本)的.css( '左')); } ,收容:'#layout' ,refreshPositions:true ,snap:true });
当您添加新元素时,您也需要为该元素调用.draggable()。
一种方法是将选择器/可拖动代码放入函数中,并在添加新元素后调用它。
答案 1 :(得分:0)
问题在于,当您向DOM附加新元素时,它不会继承现有可拖动元素的事件处理程序。
您可能会对liveQuery
感到幸运这将允许您在与选择器匹配的所有当前和未来元素上创建实时事件。它类似于内置的live()方法。我没有使用它,但它应该与draggable一起使用。
答案 2 :(得分:0)
终于找到了解决方案,而且还附加了新的div ...
$('#nv_objeto').click(function(){
var nbr =prompt("Por favor escriba el nombre del Objeto:","");
$("#layout").append("<div id='"+c_nbr(nbr)+"' class='seleccionable' style='top: 300px; left: 400px; width : 40px; height : 40px; background-color : black; position :absolute;'></div>");
$('#layout > div:last').blur().draggable({
drag: function(e, ui) {
$('#status_nombre').html($(this).attr('id'));
$('#status_top').attr('value',$(this).css('top'));
$('#status_left').attr('value',$(this).css('left'));
}
,containment: '#layout'
,refreshPositions: true
,snap: true
});
});
感谢您的帮助。