我是jQuery的新手,需要一些幫助解決以下問題。jQuery - 如何用懸停覆蓋背景顏色動畫?
我有一個簡單的數據表(20行4列)在網頁上(asp.net mvc)。注意 - 我使用<div>
標籤而不是<table> <td> <tr>
標籤建立了表格。
對於每一行都有彙總數據,然後單擊該行右側的「編輯記錄」選項。點擊「編輯記錄」可以看到更多的信息。
這裏是一個圖案:(在「真正的」表NB的名稱/日期是真實姓名/日期等)
----------------------------------------------------------------------------
Name Date Status [ Edit Record]
----------------------------------------------------------------------------
Name Date Status [ Edit Record]
----------------------------------------------------------------------------
有四種效果我想創建:
- 當用戶將鼠標懸停在一排的背景顏色改變
- 當用戶點擊「編輯記錄」的更多信息可見度翻轉
- 當附加信息可見背景顏色的變化。
- 當附加信息被隱藏在背景顏色默認爲白色
到目前爲止,我有以下的jQuery代碼幾乎工作(見問題在底部):
該代碼處理「懸停「效果(1):
$("div.record").hover(function() {
$(this).addClass("recordhover");
}, function() {
$(this).removeClass("recordhover");
});
該代碼處理的附加信息和背景顏色的可見性(2,3,4):
$("div.recordtopline > div.recorddetail").click(function(event) {
if (this == event.target) {
if ($(this).parent("div").next(".recordbelowline").is(':hidden')) {
$(this).parent("div").next(".recordbelowline").show();
$(this).parent("div").parent("div").animate({backgroundColor: "#FFEFC6" }, 'fast');
}
else {
$(this).parent("div").next(".recordbelowline").hide();
$(this).parent("div").parent("div").animate({ backgroundColor: "#FFF" }, 'fast');
}
return false;
}
});
問題
當我加載網頁,懸停效果完全適用於所有行。但是,如果我選擇了「編輯記錄」以查看更多信息,然後隱藏了附加信息,則懸停效果不再適用於該行,即根據我的動畫代碼,backgorund顏色保持爲白色。
我該如何克服這個問題,使懸停效果'覆蓋'背景動畫效果?
我正在使用彩色動畫插件,我從jQuery下載。如果我正確地理解了你,你說使用樣式表和jQuery的'addClass'和'removeClass'功能可以更容易地達到預期的效果。僅供參考,如果改變了任何東西,我需要支持Ie6 – 2010-04-23 10:17:58
完美實現了這項工作。喜歡它。這麼簡單,我覺得很愚蠢!非常感謝您的幫助。 – 2010-04-23 10:23:21