我有这段代码,它实际上工作正常,但我有一个虚假的行,如果没有它,它将无法工作。
它从css中获取悬停颜色,通过jquery和悬停(颜色之间)的动画,用于没有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 )
}
);
});
答案 0 :(得分:1)
为了防止对任何人有任何帮助,我将描述我为解决这个问题所采取的措施。
我正在使用wordpress,我发现wordpress已经包含了jQuery UI;所以我所做的是删除我最初用于动画功能的JqueryUI代码部分(有一个插件可以使用,但我选择包含JqueryUI代码)所以现在我用这个代码替换了将(在我的functions.php文件中)排入jqueryUI核心和JqueryUI效果核心,从而将JqueryUI包含在一个完全不同的(并且在wordpress术语中更好)的方法中。
然后我使用的代码也略有改变,但实际上我不认为代码是问题,因为它可能与我使用的jQueryUI代码与包含的Jquery代码不同步在wordpress。
$(function() {
var quickbar = $(".no-csstransitions #quick-bar a");
var quickbarcolor = quickbar.css("color");
quickbar.hover(function () {
if ( $(this).css("color") != quickbarcolor) quickbarcolorhover = $(this).css("color");
$(this).find("*").css("color", quickbarcolor).animate({ color: quickbarcolorhover } , 400 );
}, function() {
$(this).find("*").animate({ 'color': quickbarcolor} ,400 )
}
);
});