4 javascript error-handling jquery jquery-selectors onhover
小提琴:http://jsfiddle.net/vretc/
正如你可以从小提琴中看到的那样,我希望在悬停在它上时改变跨度的颜色,但不知何故,即使我将鼠标悬停在前三个元素中,悬停事件也只适用于最后一个跨度.
HTML
<p class="p">
<span>Span 1</span>
</p>
<p class="p">
<span>Span 2</span>
</p>
<p class="p">
<span>Span 3</span>
</p>
<p class="p">
<span>Span 4</span>
</p>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('.p').each(function() {
$span = $(this).children('span');
$span.hover(
function() {
$span.css('color', 'red');
},
function() {
$span.css('color', 'blue');
}
)
});
Run Code Online (Sandbox Code Playgroud)
var
之前添加$span
:
var $span = $(this).children('span');
Run Code Online (Sandbox Code Playgroud)
目前,您正在声明一个全局变量,它将在循环中的每次迭代时被覆盖.
您只有一个全局$span
变量,在循环之后将包含最后一个迭代元素.相反,使用var
声明使变量local :
$('.p').each(function() {
var $span = $(this).children('span');
$span.hover(
function() {
$span.css('color', 'red');
},
function() {
$span.css('color', 'blue');
}
)
});
Run Code Online (Sandbox Code Playgroud)