2011-07-30 37 views
0

这可能是荒谬的愚蠢,但我已经一次又一次地了解了这段代码,似乎无法弄清楚为什么它不起作用。jQuery .hover无法工作

这里是我的JS:

$(document).ready(function() { 
    $("#flame").hover(function() 
    { $(this).removeClass("normal").addClass("hover"); } 
    ); 
}); 

而我的HTML:

<a href="javascript:void()"> 
<div id="flame" class="normal"></div> 
</a> 

任何我的CSS,好措施:

#flame { 
    margin:auto; 
    width: 180px; 
    height: 218px; 
} 

.normal { 
    background: url(../images/flame_normal.png); 
} 

.hover { 
    background: url(../images/flame_hover.png); 
} 

我用同样的jQuery效果不够次,我甚至有另一个我用类似的源代码创建的js文件,但我不明白为什么它不起作用。

回答

5

在jQuery 1.4之前,.hover()需要2个函数。添加第二个,你应该没问题。

$(document).ready(function() { 
    $("#flame").hover(function() { 
       $(this).removeClass("normal").addClass("hover"); 
      }, function() { 
       $(this).removeClass("hover").addClass("normal"); 

     }); 
}); 

此外,您还可以在单​​独的CSS处理这个(浏览器的支持是有限的,虽然):

#flame { 
    ... 
    background: url(../images/flame_normal.png); 
} 

#flame:hover { 
    background: url(../images/flame_hover.png); 
} 
+0

即使添加第二个函数(我正在运行jQuery 1.6+)后,它仍然无法工作。我完全被诅咒了。 – Fireworksable

+0

找出它是什么,搞砸了来自Google的jquery.min.js的src =“”。谢谢大家的帮助:)。 – Fireworksable

+0

很高兴工作。不要忘记接受答案。 – Mrchief

0

如果你正在做的是改变图像的唯一的事情,你可以使用一个CSS伪类:

#flame { 
    margin:auto; 
    width: 180px; 
    height: 218px; 
    background: url(../images/flame_normal.png); 
} 

#flame:hover { 
    background: url(../images/flame_hover.png); 
}