2

我正在尝试使用 Jquery 查找下一个 div。这是代码:

$('.menu-item').hover(function() {
  $(this).stop(true, true).addClass("menu-item-hover", 300);
  $(this).next('div').stop(true, true).fadeIn(300);
}, function() {
  $(this).stop(true, true).removeClass("menu-item-hover", 300);
  $(this).next('div').stop(true, true).fadeOut(300);
});


<a href="media.html"><div class="menu-item"><h1>Media</h1></div></a>
<div id="tooltip-media">Sights and sounds from Cambodia</div>

<a href="about.html"><div class="menu-item"><h1>About</h1></div></a>
<div id="tooltip-about">Who in the world is the Phillips Family?</div>

简单的。div隐藏在toolip-*css中。我希望代码中的下一个在menu-item. 我检查了其他问题,但没有一个适合我的情况。我同时使用 Jquery 和 Jquery UI。谢谢你的帮助。

4

2 回答 2

1

试试这个

$(this).parent().next('div').stop(true, true).fadeIn(300);

在您的示例中,您试图找到下一个div,但它不是菜单项的兄弟。只有它不起作用。遍历父项并找到下一个div它将起作用。

父母()下一个()

于 2012-10-23T08:57:37.840 回答
1

首先,.next()只抓取下一个兄弟姐妹,它不会搜索所有兄弟姐妹。为此,您需要调用.nextAll('div'). 但即使这个函数在这里也对你没有帮助,因为<div>你正在寻找的节点不包含在同一个父元素中。

你应该去

$( this ).parent().next( 'div[id^=tooltip]' ).stop( true, true ).fadeOut( 300 );

参考:.next(),.nextAll()

于 2012-10-23T08:58:46.503 回答