【发布时间】:2013-01-06 22:06:15
【问题描述】:
我有一个<ul>,我在其中使用 jQuery UI Sortable 来允许对包含的<li>s 进行排序。
<li>s 使用交替的背景颜色设置样式:
.list-striped li:nth-child(odd) {
background-color: #f9f9f9;
}
当<li> 像这样被拖动时,我正在使用 Sortable 开始和停止功能来创建一个漂亮的过渡:
$( ".sortable" ).sortable({
start: function(event, ui){
$(ui.item).animate({
'background-color': '#333333'
}, 'fast');
},
stop: function(event, ui){
$(ui.item).animate({
'background-color': ''
}, 'fast');
}
});
我现在的问题是,当我们清除背景颜色时,它不会恢复到以前的背景颜色(或从 CSS 继承它应该的背景颜色)。我正在努力实现的目标可能吗?
【问题讨论】:
-
您正在做的是将停止功能上的
background-color设置为空。这不会恢复颜色,它会将其设置为空。您可以在将初始颜色设置为 #333333 之前使用变量来存储初始颜色,然后您可以将其设置为动画。 -
.css("backgroundColor","") 应该删除样式属性中的背景颜色属性;用你的萤火虫看看你的李发生了什么
-
您是否尝试将其设置为“继承”而不是空字符串?
-
如果您不关心向后兼容性,请使用 addClass 和 removeClass 添加具有背景颜色的高亮类,并为动画使用 CSS3 过渡。
-
您首先使用
...:nth-child(odd)...来实现斑马条纹,因此您需要执行类似的操作以在停止时恢复斑马条纹。当您想要制作动画时,您需要分别为赔率和事件制作动画。
标签: jquery css jquery-ui jquery-ui-sortable