我有一个带有多个行和列的菜单(食品)的表。 第二列包含食品的链接。当用户点击它时 该商品已添加到购物车中。
我想给用户一些点击和添加的视觉反馈
实际上工作。我已经有一个添加了链接的点击处理程序
项目点击了购物车。一个简单的alert('Item successfully added');
有效,但不是很漂亮。
我喜欢表格单元格(或整行)到" flash"一旦。通过"闪烁" 我的意思是"将其背景颜色从当前(浅灰色)平滑地改变为 例如黄色,然后恢复正常"。这应该只发生一次。
我使用的是jQuery 2.x和Bootstrap 3.x。
到目前为止我的(简化)代码如下所示:
$('a[href="#"]').on('click', function(event) {
// code to add the item to shopping cart (AJAX), omitted here
// Upon successful return of the AJAX data:
$(this).closest('tr').css('background-color', 'yellow');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td><a href="#">Hamburger</a>
</td>
<td>2.65</td>
</tr>
<tr>
<td>2</td>
<td><a href="#">Cheeseburger</a>
</td>
<td>3.25</td>
</tr>
</table>
&#13;
如何使行闪烁而不是简单地更改背景颜色?
答案 0 :(得分:9)
通常最好使用CSS类而不是直接操作样式:
$('a[href="#"]').on('click', function(event) {
// code to add the item to shopping cart (AJAX), omitted here
// Upon successful return of the AJAX data:
var myRow = $(this).closest('tr');
myRow.addClass('stylish');
setTimeout(function() {
myRow.removeClass('stylish');
}, 1000);
});
tr {
background-color: white;
transition: background-color 1s;
}
.stylish {
background-color: orange;
transition: background-color 1s;
}
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<table>
<tr>
<td>1</td>
<td><a href="#">Hamburger</a>
</td>
<td>2.65</td>
</tr>
<tr>
<td>2</td>
<td><a href="#">Cheeseburger</a>
</td>
<td>3.25</td>
</tr>
</table>
<强> Fiddle demo 强>