找到当前位置

时间:2011-09-25 19:57:31

标签: jquery

我有以下情况,我无法弄清楚。

我有一个菜单如下:

<ul id="top">
  <li><a href="" title="">Link 1</a>
    <ul id="sub1">
      <li><a href="" title="">Sub 1.1</a></li>
      <li><a href="" title="">Sub 1.2</a></li>
    </ul>
  </li>
  <li><a href="" title="">Link 2</a>
    <ul id="sub2">
      <li><a href="" title="">Sub 2.1</a></li>
      <li><a href="" title="">Sub 2.2</a></li>
    </ul>
  </li>
[..]
</ul>

现在我希望相应的子菜单显示链接悬停的时间。因此,我有以下方法(测试它)。

$("#top li").live("mouseover mouseout", function(event){
    if(event.type == "mouseover"){
        $(this).closest("ul").show();
    }else{
        $(this).closest("ul").hide();
    }
});

但这不起作用。显然,Link 1超链接未触发鼠标悬停事件,因为当我将$(this).closest("ul").show();更改为alert($(this).attr("title"));时(假设我的工作文档中有实际的标题说明)我得到一个空警报窗口。

我该如何解决这个问题?

哦,忘了提到我使用live(),因为我需要做一些目前隐藏的元素。

1 个答案:

答案 0 :(得分:0)

尝试使用find()代替closest()