我正在使用jQuery UI Droppable插件......
不知何故,我的Draggable <li>
元素类在删除后被删除。 :(
如何在删除元素
后为<li>
标记维护相同的CSS类
将<li class="one">Item 1</li>
放到购物车区域后,我希望将<li>
元素与<li class="one">Item 1</li>
元素保持同一级别,而当前它会被自动删除。
请检查下面的代码......
HTML
<div id="products">
<h2>Drag</h2>
<div id="catalog">
<ul>
<li class="one">Item 1</li>
<li class="two">Item 2</li>
<li class="three">Item 3</li>
<li class="four">Item 4</li>
<li class="five">Item 5</li>
<li class="six">Item 6</li>
</ul>
</div>
</div>
<div id="cart">
<h2>Drop Here...</h2>
<div class="ui-widget-content">
<ol>
<li class="placeholder">Add your items here</li>
</ol>
</div>
</div>
的jQuery
$(function() {
$( "#catalog li" ).draggable({
appendTo: "body",
helper: "clone"
});
$( "#cart ol" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function( event, ui ) {
$( this ).find( ".placeholder" ).remove();
$( "<li></li>" ).html( ui.draggable.html() ).appendTo( this );
}
}).sortable({
items: "li:not(.placeholder)",
sort: function() {
$( this ).removeClass( "ui-state-default" );
}
});
});
答案 0 :(得分:1)
更改此行:
$( "<li></li>" ).html( ui.draggable.html() ).appendTo( this );
到此:
$(ui.draggable).appendTo(this);
或
$(ui.draggable).clone().appendTo(this);
或
$( "<li class='"+$(ui.draggable).attr("class")+"'></li>" ).html( ui.draggable.html() ).appendTo( this );
您的代码正在创建一个新的li。
答案 1 :(得分:1)
将可拖动的li的类添加到新的li
$( "<li class='"+ui.draggable.attr('class')+"' ></li>" ).html( ui.draggable.html() ).appendTo( this );
这是演示
答案 2 :(得分:0)
在drop
函数中,只需添加ui.draggable
对象,无需创建自己的元素来表示拖动对象的开销。
drop: function( event, ui ) {
$( this ).find( ".placeholder" ).remove();
$(ui.draggable).appendTo(this);
}