jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在jquery中下拉子菜单出现问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 jquery制作下拉子菜单,但是当我将鼠标悬停在任何主导航链接上时,所有子菜单都会下拉.我相信我需要用this()做一些事情,但我似乎无法正确使用语法.这是一个小提琴 http://jsfiddle.net/xzN5G/

这是我的HTML

<nav id="nav">
    <ul class="nav">
        <li class="mainli"><a href="" class="SELEcted">Home</a>
            <ul class="submenu">
                <li>s1111111</li>
                <li>a2222222</li>
                <li>g3333333</li>
                <li>y4444444</li>
            </ul>
        </li>    
        <li class="mainli"><a href="album.html">My Photos</a>
            <ul class="submenu">
                <li>11111111</li>
                <li>22222222</li>
                <li>33333333</li>
                <li>44444444</li>
            </ul>
        </li>
        <li class="mainli"><a href="travel.html">My Travel</a>
            <ul class="submenu">
                <li>aaaaaaaaaa</li>
                <li>bbbbbbbbbb</li>
                <li>cccccccccc</li>
                <li>dddddddddd</li>
            </ul>
        </li>
        <li class="mainli"><a href="aboutwork.html">About Work</a>
            <ul class="submenu">
                <li>rgre1111</li>
                <li>estg22</li>
                <li>thser3333</li>
                <li>rtyr4444</li>
            </ul>
        </li>
        <li class="mainli"><a href="portfolio.html">My Portfolio</a>
            <ul class="submenu">
                <li>qqqqqqqq</li>
                <li>tttttttt</li>
                <li>ppppppppp</li>
                <li>yyyyyyyyyy</li>
            </ul>
        </li>
        <li class="mainli"><a href="contact.html">Contact Me</a>
            <ul class="submenu">
                <li>99999999</li>
                <li>88888888</li>
                <li>77777777</li>
                <li>66666666</li>
            </ul>
        </li>
    </ul>
</nav>

和我的jquery

$(document).ready(function(){
    $(".mainli").hover(function() {
        $(".submenu").slideDown("medium");
    },function () {
        $(".submenu").slideUp("medium");
    })
});

解决方法

你需要在$(this)中搜索.submenu,方法find()会为你做这个.只要.submenu是this()的直接子项,children()也可以在你的情况下工作.另一方面,find()在所有后代(也就是孩子,孙子等等)中进行搜索.

根据What is fastest children() or find() in jQuery?,两种功能间的速度没有太大差异

$(document).ready(function () {
    // $(".submenu").slideUp("medium");
    $(".mainli").hover(function () {
        $(this).find(".submenu").slideDown("medium");
    },function () {
        $(this).find(".submenu").slideUp("medium");
    });
});

我在你的小提琴中尝试了这个并且它有效,你可能想要取消注释那行$(“.submenu”).slideUp(“medium”);这样所有菜单都会关闭.

大佬总结

以上是大佬教程为你收集整理的在jquery中下拉子菜单出现问题全部内容,希望文章能够帮你解决在jquery中下拉子菜单出现问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。