Jquery Can';t get.next()开始工作
我正在尝试添加一个类,以便悬停时显示跨度文本, 但仅针对特定图像,而不是同时针对所有图像 我可以让它一次将类添加到所有跨度中,但当我尝试将其限制为仅悬停的跨度时,什么也没有发生。问题似乎是当我添加.next('span')-尽管我不知道为什么 有人能告诉我我做错了什么吗Jquery Can';t get.next()开始工作,jquery,Jquery,我正在尝试添加一个类,以便悬停时显示跨度文本, 但仅针对特定图像,而不是同时针对所有图像 我可以让它一次将类添加到所有跨度中,但当我尝试将其限制为仅悬停的跨度时,什么也没有发生。问题似乎是当我添加.next('span')-尽管我不知道为什么 有人能告诉我我做错了什么吗 $('.scroller-image').hover(function() { $(this).next('span').addClass('hover'); }, function
$('.scroller-image').hover(function() {
$(this).next('span').addClass('hover');
}, function() {
$(this).next('span').removeClass('hover');
});
以下是标记:
<div class="scroller-image">
<span>image title</span>
<img src="#" alt="#" />
</div>
图像标题
选择下一个同级元素,而不是子元素。你想要的是这个
$(this).children('span')/选择下一个同级元素,而不是子元素。你想要的是这个
$(this).children('span')/.next()
查找同级,而不是子级。尝试$(this).children('span')
.next()
查找兄弟姐妹,而不是子成员。尝试$(this)。children('span')
您可以使用和提供this
作为选择器的上下文来缩短代码。像这样:
$('.scroller-image').hover(function(e) {
$('span', this).toggleClass('hover', e.type === "mouseenter");
});
通过使用和提供this
作为选择器的上下文,您可以稍微缩短代码。像这样:
$('.scroller-image').hover(function(e) {
$('span', this).toggleClass('hover', e.type === "mouseenter");
});
您是否正在尝试将“hover”类添加到作为被悬停div的子级的跨度中?我想.next()
会去兄弟姐妹那里,为什么不试试呢
.children('span')
您是否正在尝试将“hover”类添加到作为被悬停div的子级的跨度中?我想.next()
会去兄弟姐妹那里,为什么不试试呢
.children('span')
你不需要JavaScript。CSS可以做到这一点:
.scroller-image:hover span {
/* the styles from your .hover class */
}
现场演示:你不需要JavaScript。CSS可以做到这一点:
.scroller-image:hover span {
/* the styles from your .hover class */
}
现场演示:为了安全起见,我会做.toggleClass('hover',e.type=='mouseenter')
为了安全起见,我会做.toggleClass('hover',e.type=='mouseenter')
为了安全起见。