2013-06-24 89 views
1

我在我的網站上使用jQuery的開關類功能來爲按鈕設置動畫效果。jQuery開關類沒有正確地在Chrome中激活

您可以在http://www.minecraftserverland.com/testview.php

看到頁面的按鈕被點擊一次後點擊再換一個白色背景時有白色背景清晰的背景去。這在Firefox和Internet Explorer中完美工作,但在Chrome瀏覽器中,切換的類似乎不能正確渲染。

第二次點擊時,按鈕不會變清晰並實際變黑。但是,在任何時候,如果你檢查元素,這些類會自行修復,所以javascript顯然是正常工作的。

我使用jQuery的例子:

$("#ftb").click(function() { 
    if ($("#ftb").hasClass("s1")) { 
     $('#ftb.s1').switchClass("s1", "sd1", 700, "swing"); 
     $('input#main').val('1'); 
    } else if ( $("#ftb").hasClass("sd1")) { 
     $('#ftb').switchClass("sd1", "s1", 700, "swing"); 
     $('#bukkit').switchClass("s1", "sd2", 700, "swing"); 
     $('#vanilla').switchClass("s1", "sd3", 700, "swing"); 
     $('input#main').val('ftb'); 
    } 
}); 

有沒有人遇到過嗎?你知道爲什麼會發生這種情況嗎?謝謝!

+0

我見過的其他情況下的Chrome渲染不對勁動態變化的後級,然後當你檢查它清除了。我認爲這是一個Chrome bug。 – Barmar

+0

有沒有解決方法? – mongy910

+0

你知道@ wl4000嗎?看起來他問了關於這個相同的代碼的另一個問題:http://stackoverflow.com/questions/16138145/jquery-switchclass-keeps-switching-back?rq=1 – Barmar

回答

0

有同樣的情況。

有趣的是,當你使用舊的.removeclass().addclass() thingie時,鉻正常工作。每次輸入它都是無趣的,所以我做了一個簡單的功能,沒有任何回調或持續時間,希望它可以幫助你們。

jQuery.fn.switcher = function(n,s) { 
    var $elem = $(this[0]) ; 
    $(this).removeClass(n).addClass(s); 

    return $elem; //ensures jquery chainability 
}; 

是這樣工作的:

$(element).switcher("removedclass","addedclass");