jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 支持悬停的事件委托,然后单击acordian菜单大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建垂直手风琴导航,要求显示子导航链接,并在悬停或单击.accordionButton时保持打开状态.

到目前为止,我已经能够让孩子.accordionContent在悬停时扩展,但它不会保持打开状态.

我看到了这个SO页面menu mouseenter mouseleave click,这可能是一个好的开始,但不能包围我的脑袋.

这是我的小提琴和标记

http://jsfiddle.net/faGMR/8/

HTML

<ul id="mainNav">
<li><a class="accordionButton" href="javascript:void(0);">head link 1</a>

    <ul class="accordionContent">
        <li>
            <a href="javascript:void(0);">sub link 1</a>

        </li>
        <li>
            <a href="javascript:void(0);">sub link 2</a>

        </li>
    </ul>
</li>
<li><a class="accordionButton" href="javascript:void(0);">head link 2</a></li>
<li><a class="accordionButton" href="javascript:void(0);">head link 3</a>
    <ul class="accordionContent">
        <li>
            <a href="javascript:void(0);">sub link 1</a>

        </li>
        <li>
            <a href="javascript:void(0);">sub link 2</a>

        </li>
    </ul>
</li>
<li><a class="accordionButton" href="javascript:void(0);">head link 4</a></li>
<li><a class="accordionButton" href="javascript:void(0);">head link 5</a></li>
<li><a class="accordionButton" href="javascript:void(0);">head link 6</a></li>
</ul>

JS

$(document).ready(function () {

$('.accordionContent').hide();

$('.accordionButton').mouseenter(function () {

    $(this).next('.accordionContent').stop().slideToggle("normal");

},function () {

    $(this).addClass("hover");
    $(this).next('.accordionContent').stop().slideToggle('fast');

}).mouSELEave(function () {

    $(this).next('.accordionContent').stop().slideToggle("normal");

},function () {

    $(this).removeClass("hover");
    $(this).next('.accordionContent').stop().slideToggle('fast');

});

});

解决方法

this fiddle这样的东西?

$(function () {
    var $accContents = $('.accordionContent'),$accButtons = $('.accordionButton');

    $accContents.hide();

    $accButtons.on('mouseenter click',function() {
        var $thisContent = $(this).parent().find('.accordionContent');
        if($thisContent.length) {
            $accContents.not($thisContent).slideUp('fast');
            $thisContent.slideToggle('fast');
        }
    });
});

如果不需要切换(这会使点击过时),请使用.slideDown(‘fast’)而不是slideToggle.

大佬总结

以上是大佬教程为你收集整理的jquery – 支持悬停的事件委托,然后单击acordian菜单全部内容,希望文章能够帮你解决jquery – 支持悬停的事件委托,然后单击acordian菜单所遇到的程序开发问题。

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

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