You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地运行jQuery UI Menus示例失败,需补充哪些文件资源?

解决jQuery UI Menu本地化运行异常问题

你缺失了jQuery UI的配套主题CSS文件,仅引入jQuery和jQuery UI的JS文件不足以让菜单组件正常渲染和工作——jQuery UI的交互组件依赖对应版本的CSS来提供基础样式、布局逻辑和状态交互效果。

需要补充的资源

  • 下载与你使用的jQuery UI 1.10.4版本匹配的主题CSS文件(可从jQuery UI官方渠道获取对应版本的资源)
  • 将CSS文件放在本地项目目录中,在HTML的<head>标签内引入该文件

修改后的完整代码示例

<html>
    <head>
        <!-- 引入jQuery UI主题CSS(假设已下载到本地) -->
        <link rel="stylesheet" href="jquery-ui-1.10.4.css">
        
        <style>
            #menubar {
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
            }

            /* 把jQuery UI Menu改为横向菜单栏+垂直下拉样式 */
            #menubar > li { /* 菜单栏按钮 */
                display: inline-block;
            }
            #menubar > li > ul > li { /* 下拉菜单内的选项 */
                display: block;
            }

            /* 修改下拉箭头的方向 */
            #menubar > li > div > span.ui-icon-caret-1-e {
                /* 菜单栏上的箭头 */
                background:url(https://www.drupal.org/files/issues/ui-icons-222222-256x240.png) no-repeat -64px -16px !important;
            }
            #menubar ul li div span.ui-icon-caret-1-e {
                /* 下拉菜单里的箭头 */
                background:url(https://www.drupal.org/files/issues/ui-icons-222222-256x240.png) no-repeat -32px -16px !important;
            }
        </style>
    
        <script type="text/javascript" src="jquery-1.10.2.js"></script>
        <script type="text/javascript" src="jquery-ui-1.10.4.js"></script>

        <script>
            $(document).ready(function() {
                $('#menubar').menu({
                    position: { my: 'left top', at: 'left bottom' },
                    blur: function() {
                        $(this).menu('option', 'position', { my: 'left top', at: 'left bottom' });
                    },
                    focus: function(e, ui) {
                        if ($('#menubar').get(0) !== ui.item.parent().get(0)) {
                            $(this).menu('option', 'position', { my: 'left top', at: 'right top' });
                        }
                    },
                });
            });
        </script>
    </head>

    <body>
        <ul id="menubar">
            <li><div>Alpha</div></li>
            <li>
                <div>Beta</div>
                <ul>
                <li><div>Beta 1</div></li>
                <li>
                    <div>Beta 2</div>
                    <ul>
                    <li><div>Beta 2a</div></li>
                    <li><div>Beta 2b</div></li>
                    </ul>
                </li>
                <li><div>Beta 3</div></li>
                </ul>
            </li>
            <li><div>Gamma</div></li>
            <li><div>Delta</div></li>
            </ul>
    </body>

</html>

关键说明

引入jQuery UI CSS后,会自动处理以下核心逻辑:

  • 默认隐藏子菜单,仅在触发hover或focus时显示
  • 为菜单项提供基础的间距、边框和hover状态样式
  • 正确定位下拉菜单的层级和位置
  • 加载jQuery UI默认图标(你的自定义图标样式会覆盖默认效果)

内容的提问来源于stack exchange,提问作者CompanyDroneFromSector7G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:47:48