这里是新的,也是 jQuery 的新手。我一直在寻找我的问题/问题的答案但没有成功,所以我来了。我在使用此代码时遇到问题:
<p>Hello.</p>
<p>Good bye.</p>
<p>Ciao!</p>
<script>
jQuery('p').mouseover(
function() {
jQuery(this).css({backgroundColor:'red'});
}
);
jQuery('p').mouseout(
function() {
myElement = jQuery(this);
setTimeout(function(){
color = ['red','green','blue','orange'];
myElement.css({backgroundColor:color[Math.round(Math.random()*3)]});
}, 1000
)
}
);
</script>
问题是,如果我们在执行最后一个 setTimeout 函数之前将光标移到一个新段落上,那么第一个和第二个 setTimeout 函数都将作用于最后一个受影响的段落。例如:
a) 将光标移到/移出段落。在执行与 mouseout 事件关联的 setTimeout 函数之前,
b) 将光标移到/移出不同的段落。现在 setTimeout 函数
myElement.css({backgroundColor:color[Math.round(Math.random()*3)]});
将连续两次为第二段选择背景颜色,而为第一段选择无背景颜色。我尝试将两个不同的变量(myElementOne 和 myElementTwo)与 jQuery(this) 值相关联,但无济于事。我将不胜感激一些帮助。谢谢。