jquery悬停找不到父跨度

标签 jquery menu find parent

我确信这已经被涵盖了,但是有太多 jquery 父问题,筛选它们是一项相当艰巨的任务。

我有一个带有无序菜单下拉列表的页面,如下所示:

  <ul class="topnav">
    <span><li><a href="firstitem.php">Contact</a>
        <ul class="subnav">
            <li><a href="contact.php">Contact Us</a></li>
            <li><a href="testlink.php">Test Link</a></li>
        </ul>
    </li></span>

    <span><li><a href="seconditem.php">Ministries</a>
      <ul class="subnav">
        <li><a href="#">link 1</a></li>
        <li><a href="#">link 2</a></li>
        <li><a href="#">Link 3</a></li>
        <li><a href="#">Link 4</a></li>
        <li><a href="#">Link 5</a></li>
         <li><a href="#">Link 6</a></li>
      </ul>
    </li></span>
</ul>

目前,我的 jquery 是这样引用的:

$(document).ready(function(){
    $("ul.topnav li a") .mouseover(function() { //When trigger is clicked...
        //Drop down the subnav on click
        $(this).parent().find("ul.subnav").slideDown('fast');
        $(this).parent().parent("span").hover(function() {
            //do nothing since we are already hovering over this span and menu should be dropped
        }, function(){
            //if we leave the span, slideUp the menu
            $(this).parent().find("ul.subnav").slideUp('medium');
        });
    });
});

下拉菜单有效,但我找不到我正在寻找的跨度,所以目前它永远不会向上滑动。任何帮助,将不胜感激。谢谢

另外,我想在不添加单独标签 ID 的情况下执行此操作。是的,这会更容易,但我从其他人那里得到了这个代码,我想保持它的相似性。

最佳答案

这里有一些问题。

  1. 不要输入 <li><span> 。它破坏了 html 验证规则并可能导致问题。

  2. slideup 不起作用的原因是它在一个新函数中,即 this 的范围。已经改变了。

代码

$(document).ready(function(){
    $("ul.topnav li a") .mouseover(function() { //When trigger is clicked...
        //Drop down the subnav on click
        var $ul = $(this).parent().find("ul.subnav");
        $ul.slideDown('fast');
        $(this).parent().parent("span").hover(function() {
        //do nothing since we are already hovering over this span and menu should be dropped
        }, function(){
            //if we leave the span, slideUp the menu
            $ul.slideUp('medium');
        });
    });
});

这应该更适合你。

关于jquery悬停找不到父跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155629/

相关文章:

html - 具有自定义内容和覆盖的 WordPress 全屏菜单

python - 计算并显示一行在文件中重复了多少次

mongodb - 在子文档中使用 db.collection.find 查询

javascript - Jquery Plugins,从其他方法调用函数

javascript - 通过 JavaScript 循环加载的项目未按正确顺序显示

css - 如何制作子菜单的子菜单项

html - 如何对标题中的下拉菜单进行 z 索引?

bash - 使用 find 命令重复结果条目

javascript - AJAX 上传显示多个文件上传中唯一文件的进度

javascript - IE 在 ajaxified 网站上调用函数两次