我正在尝试使用JQuery在悬停其中一个具有共享ID的链接时显示/隐藏具有相同ID的众多div中的一个。
Markup Snippet
<div id='menuOption'>
<a href='#'><div id='cat_name'>$sub[cat_title]</div></a>
<div id='sub_menu' style='display:none;'>$itemlist</div></div>";
查询片段(我尝试过的):
$("#cat_name", this).hover(function(){
$("#sub_menu", this).show();
});
$("#cat_name", this).mouseleave(function(){
$("#sub_menu", this).hide();
});
我感谢任何可能帮助我解决这个问题的信息。谢谢。
答案 0 :(得分:3)
HTML ID必须是唯一的。请改用使用类的html元素。
示例:http://jsfiddle.net/GPhsC/2/
HTML
<div class='menuOption'>
<a href='#'><div class='cat_name'>$sub[cat_title]</div></a>
<div class='sub_menu' style='display:none;'>$itemlist</div>
</div>
的jQuery
$(".cat_name").hover(function(){
$(this).parent().parent().find(".sub_menu").show();
},
function() {
$(this).parent().parent().find(".sub_menu").hide();
});
答案 1 :(得分:1)
具有相同ID属性的多个元素是不正确的标记。
您应该按类属性识别元素组。
为您的例子
<div class='menuOption'> <a href='#'><div class='cat_name'>$sub[cat_title]</div></a>
<div class='sub_menu' style='display:none;'>$itemlist</div></div>";
和
$(".cat_name", this).hover(function(){
$(".sub_menu", this).show();
});
$(".cat_name", this).mouseleave(function(){
$(".sub_menu", this).hide();
});