本地运行jQuery UI Menus示例失败,需补充哪些文件资源?
你缺失了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
相关产品推荐
相关产品推荐

