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