类别div是隐藏的,我希望在切换器悬停时显示它。任何帮助将不胜感激。
HTML
<div class="categorization">
<a href="#" class="toggler">something</a>
<div class="categories">
</div>
</div>
我尝试过这个。
jquery的
$(".categorization .toggler").hover(function() {
$(this).closest('.categories').show();
}, function(){
$(this).closest('.categories').hide();
});
答案 0 :(得分:5)
closest()走在祖先树上,所以这不是你想要的。您可以使用nextAll()和first()来实现您的目标:
$(".categorization .toggler").hover(function() {
$(this).nextAll(".categories").first().show();
}, function(){
$(this).nextAll(".categories").first().hide();
});
请注意,next()仅匹配下一个元素,因此next(".categories")
仅在<div>
元素紧跟在您的切换元素后才有效。
答案 1 :(得分:3)
var categoryDiv = $(this).next('div'); // or
var categoryDiv = $(this).next('.categories');
这将使你获得与toggler相关的下一个div兄弟。
答案 2 :(得分:0)
请注意:
在jquery API中,
.closest():获取与选择器匹配的第一个祖先元素,从当前元素开始并逐步向上遍历DOM树。
显然,你的&lt; div&gt; element不是&lt; a&gt;
的祖先元素请参阅http://api.jquery.com/closest/
在这种情况下,你应该尝试.next(),如果你只想获得一个元素, 或.nextAll(),如果你想让所有元素与你的选择器匹配。