jQuery droppables – 在drop上更改元素

我对jQuery有点新鲜,希望有人可以帮助我。

我想在删除(li)之后将元素(li)更改为另一个元素(div)。

示例代码:

$("#inputEl>li").draggable({ revert: true, opacity: 0.4, helper: "clone" }); $("#dropEl") .droppable({ accept: ".drag", hoverClass: "dropElhover", drop: function(ev, ui) { // change the li element to div here } }); 

问题是,当我使用时

 drop: function(ev, ui) { $(ui.draggable).replaceWith("
Some content
"); }

触发上述function时,将禁用原始可拖动元素。

我正在使用最新的jQuery和jQuery UI稳定版本。

那么,你想要的是保持你的原始列表完整并将列表项放入dropEl? 这个怎么样:

 drop: function(ev,ui) { $(this).append("
Some content
"); }

或者,如果你想用div元素替换list元素并且还有div元素可拖动,你可以试试这个:

 drop: function(ev, ui) { $(ui.draggable).replaceWith("
Some content
"); $("#inputEl>div").draggable({ revert: true, opacity: 0.4, helper: "clone" }); }

原始的可拖动调用仅在调用时使项目可拖动。 如果更改或添加元素并希望它们可拖动,则需要再次调用draggable()函数。

thanx回复。

你的第一个代码工作,而且我还可以像这样对droppable中的div进行排序:

  drop: function(ev, ui) { $(this).append("
Some content
"); $("#dropEl").sortable(); }

现在问题是我如何知道哪个列表一旦我将其更改为div?

我使用以下代码来获取每个元素id:

 drop: function(ev, ui) { revert: true; var this_id = $(ui.draggable).attr("id"); $(this).append('
Some content
'); $("#dropEl").sortable(); }