このコードがあり、実際には正常に動作しますが、そこに偽の行があり、何らかの理由でそれなしでは機能しません。
jquery を介して css からホバーの色を取得し、css トランジションがないブラウザーのホバー (色の間) をアニメーション化します。(機能を検出するためにmodernizrを使用しています)。問題は、変数宣言を削除するとvar ie8and9dec = quickbarcolorhover;
(他にまったく使用されず、これを機能させるものをトリガーするだけです)、IE8およびIE9ではまったく機能しません...(おそらく私が使用した他のすべてのブラウザーは、そもそもこのコードを必要としません)。
なぜこれが当てはまるのか誰にも分かりますか?宣言を に置き換えても機能console.log(quickbarcolorhover);
します。それが私が発見した方法です。回避できるのであれば、この偽のコードを使用したくありません。
$(function() {
var quickbar = $(".no-csstransitions #quick-bar a");
quickbarcolor = quickbar.css("color");
quickbar.hover(function () {
if ( $(this).css("color") != quickbarcolor) {
quickbarcolorhover = $(this).css("color");
}
var ie8and9dec = quickbarcolorhover; /* this dec has no purpose but code wont work without it */
$(this).children().css("color", quickbarcolor).animate({ color: quickbarcolorhover } ,400 );
}, function() {
$(this).children().animate({ 'color': quickbarcolor} ,400 )
}
);
});