jquery顏色動畫間歇性地拋出無效的屬性值
我正在嘗試為 ASP.Net 超連結的背景設置動畫,以在更新面板刷新時進行黃色淡入淡出。到目前為止,它幾乎一直都在工作,但偶爾會拋出一個 javascript 錯誤“無效的屬性值”。並將其調試到該行的jquery顏色外掛程式碼中…
fx.elem.style[attr] = "rgb(" + [ Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0), Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0), Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0) ].join(",") + ")";這是目前正在發生的事件的順序……
首先,視窗在 doc.ready 上傳入,它會註冊一個事件,以便在更新面板完成刷新時執行,如下所示……
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(yellowFade);其中 yellowFade 被定義為…
function yellowFade() { window.setTimeout("$('#' + hyperlinkUrlId).animate( { backgroundColor: 'white' }, 2000)", 2000); window.clearTimeout(); }現在,我很少在此時崩潰,但通常是稍後,所以我會繼續……
然後我點擊一個標題為“生成”的按鈕,該按鈕創建一個 URL 載入 ASP.Net 超連結及其創建的 URL 的文本,然後通過 javascript 將其背景顏色設置為黃色以通過此淡出…
$("#" + hyperlinkUrlId).css("background-color", "#FBFF9C");我最初讓它通過這個程式碼在後面的程式碼中設置顏色……
Url.BackColor = ColorTranslator.FromHtml("#FBFF9C");但是後來我想也許背景顏色被設置為jquery顏色外掛無法辨識的東西,或者因為它被設置在伺服器端,外掛無法訪問它的樣式或其他東西,但改變它仍然沒有對修復錯誤的影響。
最後, generate 將 URL 的背景顏色從白色更改為黃色,然後正如我所說的,大多數情況下它會很好地消失,但很少會拋出錯誤“無效的屬性值”。
據我所知,我的語法正是使用彩色動畫的方式。我覺得我使用更新面板的事實可能會在這裡造成嚴重破壞,但我不確定。
有沒有人對可能導致這種事情的原因有任何見解?嘗試調試確實是一團糟,因為它很少發生,而忽略了javascript已經很難調試的事實。
在 Windows Vista 上使用 jquery 1.3.1 和 jquery.color 1.0。使用 Visual Studio 2008。讓我知道是否有什麼可以清理的。
**編輯:**噹噹,還沒有一個回應。我在這方面工作了一段時間,但我剛剛在我的應用程序的另一部分發現了這個錯誤,我正在做黃色漸變。這兩個頁面都使用更新面板。在很多情況下,我不喜歡更新面板,它肯定對我的 jquery 造成了嚴重破壞。我想知道這是否與此有關。哦,這有點暗示整個 Vista 的事情,但我會指出我在 IIS7 上執行。
這會引起任何見解嗎?
我想我在另一個項目中遇到了和你一樣的問題;我在另一個 DIV 內部有一個 DIV(沒有明確定義它的背景。)我試圖“閃爍”內部 DIV 的背景顏色並遇到該錯誤。只有在我為容器 DIV 分配了特定顏色之後,錯誤才消失。
我在 IE8 中遇到了同樣的問題,在一些 td 元素上有背景顏色動畫。即使我為 tr 提供了背景顏色,它仍然存在。
我想我現在已經通過更改 jquery.ui 中的一些程式碼來修復它。
找到這個部分:
// We override the animation for all of these color styles $.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i, attr) { $.fx.step[attr] = function(fx) { if (fx.state == 0) {改變:
if (fx.state == 0)到:
if (fx.state == 0 || fx.start.constructor != Array || fx.end.constructor != Array)有時在執行此程式碼時。fx.State 不是 0,但是 fx.start 和 fx.end 還沒有被初始化為 RGB 數組。在更新的程式碼中,如果 fx.start 和 fx.end 數組尚未初始化,我們將對其進行初始化。
這似乎已經解決了它,但很難確定間歇性問題。