【问题标题】:jQuery UI Menubar not workingjQuery UI 菜单栏不起作用
【发布时间】:2012-04-18 17:13:16
【问题描述】:

我从here 获得了代码,从here 获得了相关文件。我只是更改了路径并只保留了一个菜单栏,它对我不起作用。这是我能看到的:

这是我的代码:

在 HTML 头部中:

<link rel="stylesheet" href="Rules/navbar/jquery.ui.all.css" />
<script src="jquery-1.7.1.js"></script>
<script src="Rules/navbar/jquery.ui.core.js"></script>
<script src="Rules/navbar/jquery.ui.widget.js"></script>
<script src="Rules/navbar/jquery.ui.position.js"></script>
<script src="Rules/navbar/jquery.ui.button.js"></script>
<script src="Rules/navbar/jquery.ui.menu.js"></script>
<script src="Rules/navbar/jquery.ui.menubar.js"></script>
<script>
$(function() {
    function select(event, ui) {
        $("<div/>").text("Selected: " + ui.item.text()).appendTo("#log");
        if (ui.item.text() == 'Quit') {
            $(this).menubar('destroy');
        }
    }
    $("#bar1").menubar({
        position: {
            within: $("#demo-frame").add(window).first()
        },
        select: select
    });

    $(".menubar-icons").menubar({
        autoExpand: true,
        menuIcon: true,
        buttons: true,
        position: {
            within: $("#demo-frame").add(window).first()
        },
        select: select
    });

    $("#bar3").menubar({
        position: {
            within: $("#demo-frame").add(window).first()
        },
        select: select,
        items: ".menubarItem",
        menuElement: ".menuElement"
    });
});
</script>
<style>
    #bar1, #bar2 { margin: 0 0 4em; }
</style>

在 HTML 正文中:

<div class="demo">

<ul id="bar2" class="menubar-icons">
    <li>
        <a href="#File">File</a>
        <ul>
            <li><a href="#Open...">Open...</a></li>
            <li class="ui-state-disabled">Open recent...</li>
            <li><a href="#Save">Save</a></li>
            <li><a href="#Save as...">Save as...</a></li>
            <li><a href="#Close">Close</a></li>
            <li><a href="#Quit">Quit</a></li>
        </ul>
    </li>
    <li>
        <a href="#Edit">Edit</a>
        <ul>
            <li><a href="#Copy">Copy</a></li>
            <li><a href="#Cut">Cut</a></li>
            <li class="ui-state-disabled">Paste</li>
        </ul>
    </li>
    <li>
        <a href="#View">View</a>
        <ul>
            <li><a href="#Fullscreen">Fullscreen</a></li>
            <li><a href="#Fit into view">Fit into view</a></li>
            <li>
                <a href="#Encoding">Encoding</a>
                <ul>
                    <li><a href="#Auto-detect">Auto-detect</a></li>
                    <li><a href="#UTF-8">UTF-8</a></li>
                    <li>
                      <a href="#UTF-16">UTF-16</a>
                      <ul>
                         <li><a href="#Option 1">Option 1</a></li>
                         <li><a href="#Option 2">Option 2</a></li>
                         <li><a href="#Option 3">Option 3</a></li>
                         <li><a href="#Option 4">Option 4</a></li>
                      </ul>
                   </li>
                </ul>
            </li>
            <li><a href="#Customize...">Customize...</a></li>
        </ul>
    </li>
</ul>

</div>

【问题讨论】:

  • Stack Overflow is not a Code Writing, Tutorial or Consulting Service。尝试创建一个 jsFiddle 来证明您的问题。尝试放入调试代码的 console.log 语句。您还没有列出您实际尝试过的任何内容。
  • 尝试在浏览器中查看源代码(按CTRL + U或右键单击查看源菜单),您将看到包括CSS文件在内的整个html。尝试通过单击打开任何 css 文件。你会得到page not found 错误。如果是,请确保在 html 文件中提到的路径上存在必要的 css 文件和图像。
  • 您在控制台中看到了什么错误?
  • @Scott:我很抱歉。下次我在这里发布问题时会记住这一点。
  • @codef0rmer:我按照你的建议试过了,它可以找到 CSS 文件并显示其中的代码。

标签: jquery jquery-ui jquery-ui-menubar


【解决方案1】:

让您的代码在这里工作http://jsfiddle.net/cavmj/

使用了您提供的 javascript 和 HTML。所以我猜是某些文件没有正确加载。

确保它加载:

<script src="Rules/navbar/jquery.ui.menu.js"></script>
<script src="Rules/navbar/jquery.ui.menubar.js"></script>

并且CSS文件可以导入:

jquery.ui.menu.css
jquery.ui.menubar.css

也许可以尝试直接链接:

<link rel="stylesheet" href=http://code.jquery.com/ui/1.8.19/themes/base/jquery-ui.css">
<link rel="stylesheet" href="http://view.jqueryui.com/menubar/themes/base/jquery.ui.menu.css">
<link rel="stylesheet" href="http://view.jqueryui.com/menubar/themes/base/jquery.ui.menubar.css">

如果这不是问题,请尝试检查控制台错误。

如果您有 firefox 和 firebug、Chrome 或 IE9(或更高版本):按 F12 并选择 Console

它会在加载时显示是否遇到任何 JavaScript 错误。


检查了您的链接。您缺少 jquery ui、菜单和菜单栏脚本。尝试添加以下内容:

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://view.jqueryui.com/menubar/ui/jquery.ui.menu.js" type="text/javascript"></script>
<script src="http://view.jqueryui.com/menubar/ui/jquery.ui.menubar.js" type="text/javascript"></script>

而你在 jquery ui CSS 文件中遗漏了一个引号

<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.19/themes/base/jquery-ui.css">

【讨论】:

  • 抱歉,Marco,它不适合我。请在下面的网址中找到我的 PHP 文件。来自控制台的错误:$("#bar1").menubar 不是函数 research.poly.edu/~yjeanpie/tracker/rahultest.php 第 21 行
  • 你已经编辑掉了所有的 jQuery UI javascript?更新了帖子:)
  • 我按照你说的更新了。它虽然不起作用。现在控制台出现两个错误: 1. jQuery is not defined jquery-ui.min.js() 2. $("#bar1").menubar is not a function (?)() 请再次检查网页。我做得对吗?
  • 你缺少 jQuery... 在原来的帖子中你有 &lt;script src="jquery-1.7.1.js"&gt;&lt;/script&gt; :)
  • 你在加载 jQuery 之后。由于它们依赖于 jQuery,因此需要先加载它,所以向上移动它:)
【解决方案2】:

所有的工作都来自 jsfiddle.net,因为所有的 css 和 js 都引用了原始站点,并且内部链接也做同样的事情。

如果您想让它在本地工作,请尝试将所有 js 和 css 引用一一替换为您的本地文件,然后您会看到缺少哪些 css 或 js 或图像文件。

我遇到了同样的问题,经过这些步骤后,现在一切正常,无需外部引用。

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2017-12-08
    • 2013-12-22
    相关资源
    最近更新 更多