jQuery 可丢弃 - 丢弃后不要删除 <li> 标签的原始 CSS class
jQuery Droppable - Dont remove Original CSS class of <li> Tag after dropping
我正在使用 jQuery UI 可放置插件...
不知何故,我的可拖动 <li>
元素 Class 在放下后被删除。 :(
如何在删除元素后为 <li>
标签保持相同的 CSS class
在将 <li class="one">Item 1</li>
放到购物车区域后,我想保持与 <li>
元素相同的 class 与 <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" );
}
});
});
在您的 drop
函数中,只需附加 ui.draggable
对象,无需创建您自己的元素来表示被拖动对象的开销。
drop: function( event, ui ) {
$( this ).find( ".placeholder" ).remove();
$(ui.draggable).appendTo(this);
}
更改此行:
$( "<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。
将你的可拖动里的 class 添加到新的里
$( "<li class='"+ui.draggable.attr('class')+"' ></li>" ).html( ui.draggable.html() ).appendTo( this );
这是演示
我正在使用 jQuery UI 可放置插件...
不知何故,我的可拖动 <li>
元素 Class 在放下后被删除。 :(
如何在删除元素后为 <li>
标签保持相同的 CSS class
在将 <li class="one">Item 1</li>
放到购物车区域后,我想保持与 <li>
元素相同的 class 与 <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" );
}
});
});
在您的 drop
函数中,只需附加 ui.draggable
对象,无需创建您自己的元素来表示被拖动对象的开销。
drop: function( event, ui ) {
$( this ).find( ".placeholder" ).remove();
$(ui.draggable).appendTo(this);
}
更改此行:
$( "<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。
将你的可拖动里的 class 添加到新的里
$( "<li class='"+ui.draggable.attr('class')+"' ></li>" ).html( ui.draggable.html() ).appendTo( this );
这是演示