Jquery 悬停功能并不总是在悬停时被调用
Jquery hover function does not always get called on hover over
我有一个 jquery 悬停问题,出于某种原因,在我的情况下,每次悬停在 li
上时,悬停功能并不总是被调用。
这里我有一个导航为
<div id="nav">
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
<li><a href="">Blog</a></li>
</ul>
</div>
当我将鼠标悬停在 li
上时,我想更改悬停的背景颜色 li
。
这是我的 jquery 函数
var colorArray = [ "#2E8B57", "#008080", "#FF4500", "#FF7F50", "#C71585", "#FFD700", "#FF1493", "D7578B" ];
$("#nav ul li").hover(function(event){
var rand = Math.floor((Math.random() * 8));
$(this).css({
"background-color": colorArray[rand],
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
},function(){
$(this).css({
"background-color": '#FFFFFF',
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
});
大部分时间都有效,但由于某些原因,有时 li
的背景颜色不会改变。
参见 jsfiddle here
你的最后一个颜色 D7578B
错过了 #
。该颜色可能无法正常工作。
你可以试试这个:
var colorArray = [ "#2E8B57", "#008080", "#FF4500", "#FF7F50", "#C71585", "#FFD700", "#FF1493", "#D7578B" ];
$("#nav ul li").hover(function(event){
var rand = Math.floor((Math.random() * 8));
$(this).css({
"background-color": colorArray[rand],
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
},function(){
$(this).css({
"background-color": '#FFFFFF',
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
});
我有一个 jquery 悬停问题,出于某种原因,在我的情况下,每次悬停在 li
上时,悬停功能并不总是被调用。
这里我有一个导航为
<div id="nav">
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
<li><a href="">Blog</a></li>
</ul>
</div>
当我将鼠标悬停在 li
上时,我想更改悬停的背景颜色 li
。
这是我的 jquery 函数
var colorArray = [ "#2E8B57", "#008080", "#FF4500", "#FF7F50", "#C71585", "#FFD700", "#FF1493", "D7578B" ];
$("#nav ul li").hover(function(event){
var rand = Math.floor((Math.random() * 8));
$(this).css({
"background-color": colorArray[rand],
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
},function(){
$(this).css({
"background-color": '#FFFFFF',
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
});
大部分时间都有效,但由于某些原因,有时 li
的背景颜色不会改变。
参见 jsfiddle here
你的最后一个颜色 D7578B
错过了 #
。该颜色可能无法正常工作。
你可以试试这个:
var colorArray = [ "#2E8B57", "#008080", "#FF4500", "#FF7F50", "#C71585", "#FFD700", "#FF1493", "#D7578B" ];
$("#nav ul li").hover(function(event){
var rand = Math.floor((Math.random() * 8));
$(this).css({
"background-color": colorArray[rand],
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
},function(){
$(this).css({
"background-color": '#FFFFFF',
WebkitTransition: 'background-color 500ms linear',
MozTransition: 'background-color 500ms linear',
OTransition: 'background-color 500ms linear',
MsTransition: 'background-color 500ms linear',
transition: 'background-color 500ms linear'
});
});