jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery UI菜单崩溃模糊大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为jQuery UI子菜单在mouseblur事件上保持打开很烦人. (见 http://api.jqueryui.com/menu底部.)

在模糊事件发生一段时间之后,我一直在玩弄如何折叠菜单,但是没有一个好的解决方案.

> menublur事件会在每个菜单菜单项模糊时触发.
>为每个子菜单创建自定义模糊事件非常糟糕.

我还能做什么? jQuery UI菜单似乎不完整,并没有经过深思熟虑.

解决方法

我的策略是在每个menublur事件上创建一个计时器,当触发menufocus事件时,该事件被重置.如果我们打开一个菜单并且我们将鼠标从整个菜单删除,则最后一个事件将是菜单,因此在预定义的时间后我们可以折叠菜单.

HTML:

<ul id="menu">
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a>
        <ul>
            <li><a href="#">Item 3-1</a></li>
            <li><a href="#">Item 3-2</a></li>
            <li><a href="#">Item 3-3</a></li>
            <li><a href="#">Item 3-4</a></li>
            <li><a href="#">Item 3-5</a></li>
        </ul>
    </li>
    <li><a href="#">Item 4</a></li>
    <li><a href="#">Item 5</a></li>
</ul>

JavaScript的:

$(document).ready(function() {
    var menu = $('#menu');
    menu.menu();

    var blurTimer;
    var blurTimeAbandoned = 200;  // time in ms for when menu is consider no longer in focus

    menu.on('menufocus',function() {
        clearTimeout(blurTimer);
    });

    menu.on('menublur',function(event) {
        blurTimer = setTimeout(function() {
            menu.menu("collapseAll",null,true );
        },blurTimeAbandoned);
    });
});

演示:jsfiddle

参考文献:setTimeout,clearTimeout

大佬总结

以上是大佬教程为你收集整理的jQuery UI菜单崩溃模糊全部内容,希望文章能够帮你解决jQuery UI菜单崩溃模糊所遇到的程序开发问题。

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

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