【问题标题】:Dojo Examples work but mine doesntDojo 示例有效,但我的无效
【发布时间】:2016-03-05 21:17:37
【问题描述】:

所以我在练习,当我点击它时它会运行,但是当我将它复制并粘贴到我自己的文字处理器 (Atom) 并在选项卡中运行它时,它只是空白

require([
"dijit/MenuBar",
"dijit/PopupMenuBarItem",
"dijit/Menu",
"dijit/MenuItem",
"dijit/DropDownMenu",
"dojo/domReady!"
], function(MenuBar, PopupMenuBarItem, Menu, MenuItem, DropDownMenu){
var pMenuBar = new MenuBar({});
var pSubMenu = new DropDownMenu({});
pSubMenu.addChild(new MenuItem({
    label: "File item #1"
}));
pSubMenu.addChild(new MenuItem({
    label: "File item #2"
}));
pMenuBar.addChild(new PopupMenuBarItem({
    label: "File",
    popup: pSubMenu
}));
var pSubMenu2 = new DropDownMenu({});
pSubMenu2.addChild(new MenuItem({
    label: "Cut",
    iconClass: "dijitEditorIcon dijitEditorIconCut"
}));
pSubMenu2.addChild(new MenuItem({
    label: "Copy",
    iconClass: "dijitEditorIcon dijitEditorIconCopy"
}));
pSubMenu2.addChild(new MenuItem({
    label: "Paste",
    iconClass: "dijitEditorIcon dijitEditorIconPaste"
}));
pMenuBar.addChild(new PopupMenuBarItem({
    label: "Edit",
    popup: pSubMenu2
}));
pMenuBar.placeAt("wrapper");
pMenuBar.startup();
});
</script>
<div id="wrapper"></div>

反斜杠是句点没有问题。

【问题讨论】:

  • 在执行上述脚本之前,您是否在某处加载dojo.js
  • 对不起,我非常了解,我只是从示例代码中使用它。这就是所有被给予的。没有dojo.js。

标签: javascript dojo menubar


【解决方案1】:

要真正获得可运行的东西,您需要的不仅仅是问题中发布的代码 sn-p。至少您需要加载 Dojo 加载程序 (dojo.js) 或等效的 AMD 加载程序——这就是 require 函数的来源。由于代码是使用 Dijit 创建菜单,因此您还需要加载基本 Dojo 样式表和 Dijit 主题(否则菜单看起来会很糟糕)。

Dojo website有很多教程。 Hello Dojo! 是一个很好的入门方式。

<html>

<head>
  <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css">
  <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css">
  <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="async:true"></script>
  <script>
    require([
      "dijit/MenuBar",
      "dijit/PopupMenuBarItem",
      "dijit/Menu",
      "dijit/MenuItem",
      "dijit/DropDownMenu",
      "dojo/domReady!"
    ], function(MenuBar, PopupMenuBarItem, Menu, MenuItem, DropDownMenu) {
      var pMenuBar = new MenuBar({});
      var pSubMenu = new DropDownMenu({});
      pSubMenu.addChild(new MenuItem({
        label: "File item #1"
      }));
      pSubMenu.addChild(new MenuItem({
        label: "File item #2"
      }));
      pMenuBar.addChild(new PopupMenuBarItem({
        label: "File",
        popup: pSubMenu
      }));
      var pSubMenu2 = new DropDownMenu({});
      pSubMenu2.addChild(new MenuItem({
        label: "Cut",
        iconClass: "dijitEditorIcon dijitEditorIconCut"
      }));
      pSubMenu2.addChild(new MenuItem({
        label: "Copy",
        iconClass: "dijitEditorIcon dijitEditorIconCopy"
      }));
      pSubMenu2.addChild(new MenuItem({
        label: "Paste",
        iconClass: "dijitEditorIcon dijitEditorIconPaste"
      }));
      pMenuBar.addChild(new PopupMenuBarItem({
        label: "Edit",
        popup: pSubMenu2
      }));
      pMenuBar.placeAt("wrapper");
      pMenuBar.startup();
    });
  </script>
</head>

<body class="claro">
  <div id="wrapper"></div>
</body>

</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2012-06-07
    • 2017-01-30
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多