Jquery 为什么我需要这个变量声明才能使代码正常工作?

Jquery 为什么我需要这个变量声明才能使代码正常工作?,jquery,css,modernizr,Jquery,Css,Modernizr,我有这段代码,它实际上工作得很好,但我有一个虚假的行,出于某种原因,如果没有它,它将无法工作 它通过jquery从css中获取悬停颜色,并为没有css转换的浏览器设置悬停(在颜色之间)的动画。(我正在使用Modernizer检测该功能)。问题是如果我删除变量声明var ie8and9dec=quickbarcolorhover(它没有任何其他用途,它只是用来触发任何使它工作的东西)那么它对IE8和IE9就根本不起作用了。。。(所以可能根本不起作用,因为我认为我使用的所有其他浏览器一开始都不需要这

我有这段代码,它实际上工作得很好,但我有一个虚假的行,出于某种原因,如果没有它,它将无法工作

它通过jquery从css中获取悬停颜色,并为没有css转换的浏览器设置悬停(在颜色之间)的动画。(我正在使用Modernizer检测该功能)。问题是如果我删除变量声明
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 )
    }  
    );
});

以防万一,这对其他任何人都有帮助,我将描述我是如何解决这个问题的

我在使用wordpress时发现wordpress已经包含了jQueryUI;因此,我所做的是删除了我最初用于动画功能的JqueryUI代码的一部分(有一个插件可以使用,但我选择了包含JqueryUI代码),所以现在我将该代码替换为JqueryUI核心和JqueryUI效果核心的队列(在functions.php文件中),因此,通过一种完全不同的方法(用wordpress的术语来说更好)包含JqueryUI

然后我使用的代码也发生了轻微的变化,但实际上我认为代码不是问题所在,因为我使用的jQueryUI代码可能与wordpress中包含的Jquery代码不同步

$(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 )
        }
    );
});

这一定掩盖了一些潜在的问题…您是否有
quickbarcolor
quickbarcolorhover
任意位置的变量声明?@SamuelEdwinWard no。。。我注意到如果我用任何东西定义它们,那么代码也不起作用。。。我还得到了QuickBarColorHover的一个未定义错误,可能是因为对于您正在使用的某些框架或库,这些必须是全局的。除了jQuery和Modernizer之外,您还使用了什么?您是否有一个链接,指向可以复制它的地方(我认为Matt Ball是对的,因此您可能无法在JSFIDLE中复制它,因为“潜在问题”在其他地方,不会包含在JSFIDLE中)。