0

我在这个小提琴中的 jQuery 拖放环境没有按预期运行:每个初始 div 应该是可自由拖动的,并且“adddiv”按钮将添加另一个可拖动的 div。它们不应该停止被拖动,它们应该能够再次被拖动而不是冻结在适当的位置。

我习惯于 .draggable()启用拖动,也可以向控制台报告定位并.append()添加更多 div。

现在,在初始移动之后,它们会冻结,但附加的 div 可以再次移动。

4

3 回答 3

2

我解决了你的问题。

每次单击添加 div 时,您都在创建一个具有相同 id '6' 的 div。

$("#adddiv").click(function() {
  $('<div></div>').draggable().appendTo($('#set'));

});

小提琴:http: //jsfiddle.net/vQ3Tg/1/

于 2013-06-04T12:54:04.273 回答
0

动态分配属性值,例如 -

  $("#adddiv").click(function() {

       var lastid = $("#set div").last().attr('data-need')
       lastid = parseInt(lastid) + 1;

       $('#set').append('<div id="' + lastid+ '" data-need="' +lastid + '"></div>');
       $( "#" + lastid ).draggable();
 });

可能有更简洁的方法来做到这一点。尽管如此,这仍然适用于您的 jsFiddle http://jsfiddle.net/vQ3Tg/,用于超过 1 个动态附加块,而不会冻结。

于 2013-06-04T13:32:23.353 回答
0

您必须使用类而不是 id。演示在这里

$('#set').append('<div class="6" data-need="6"></div>');
于 2013-06-04T13:55:16.733 回答