2012-02-17 35 views
0

我想做一個菜單,我甚至不能運行這個示例代碼出於某種原因!在firbug錯誤是:Dojo DropDownMenu,找不到類

Could not load class "dijit.DropDownMenu" 

每隔道場菜單相關​​類的工作,我測試了通過刪除部分代碼如下,看看別的不渲染。

<div data-dojo-type="dijit.MenuBar" id="actionMenu"> 
<div data-dojo-type="dijit.PopupMenuBarItem"> 
    <span>File</span> 
    <div data-dojo-type="dijit.DropDownMenu" id="fileMenu"> 
     <div data-dojo-type="dijit.MenuItem" data-dojo-props="onClick:function(){alert('file 1');}">File #1</div> 
     <div data-dojo-type="dijit.MenuItem" data-dojo-props="onClick:function(){alert('file 2');}">File #2</div> 
    </div> 
</div> 
<div data-dojo-type="dijit.PopupMenuBarItem"> 
    <span>Edit</span> 
    <div data-dojo-type="dijit.DropDownMenu" id="editMenu"> 
     <div data-dojo-type="dijit.MenuItem" data-dojo-props="onClick:function(){alert('edit 1');}">Edit #1</div> 
     <div data-dojo-type="dijit.MenuItem" data-dojo-props="onClick:function(){alert('edit 2');}">Edit #2</div> 
    </div> 
</div> 

任何人都可以指出爲什麼?我已經使用了follwoing require語句

dojo.require("dijit.MenuBar"); 
dojo.require("dijit.PopupMenuBarItem"); 
dojo.require("dijit.DropDownMenu"); 
dojo.require("dijit.MenuItem"); 
+0

我有嘗試是的,我也無法加載'dijit.DropDownMenu'。 你能把它改成'dijit.form.DropDownButton'嗎? – OammieR 2012-02-20 04:37:00

回答

0

當你在道場不是發現了一類:

  1. 沒有找到什麼課?看看你是否需要包含它的JS文件。
  2. 如果沒有,請添加必要的要求。如果您已經是,請繼續:
  3. 檢查螢火蟲網絡控制檯:文件是否被請求?
  4. 如果沒有,請檢查並確保您的需求正在執行。如果不是,請修復它。
  5. 如果被請求你的文件,但犯錯誤了(404等),檢查它是要找的文件
  6. 找出它爲什麼不能找到該文件
1

您還沒有提供有關如何獲取庫引用或版本的信息。所以我會假設它是Googleapi的,因爲這是獲得類似錯誤的唯一方法。

事實是,當你參考圖書館從我們說googleapi的它不起作用。我已經嘗試使用1.6和更低至1.2。沒有運氣。簡單地說,對dojo庫的引用不包含DropDownMenu定義。

解決方案是不使用googleapis :) 從其下載頁面下載源代碼版本的Dojo並使用對該版本的引用。它爲我1.7.2版本工作。或使用其他鏈接,而不是谷歌的

希望這會有所幫助。

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="dojo172/dijit/themes/claro/claro.css" /> 
    <link rel="stylesheet" type="text/css" href="dojo172/dojo/resources/dojo.css" /> 
    <script type="text/javascript">djConfig = { parseOnLoad:true, isDebug:true };</script> 
    <script type="text/javascript" src="dojo172/dojo/dojo.js"></script> 
    <script> 
     dojo.require("dijit.DropDownMenu"); 
     dojo.require("dijit.MenuItem"); 
     dojo.require("dijit.MenuSeparator"); 
     dojo.require("dijit.PopupMenuItem"); 
     dojo.require("dijit.MenuBar"); 
</script> 
</head> 
<body class="claro"> 

<div data-dojo-type="dijit.DropDownMenu" id="navMenu"> 
    <div data-dojo-type="dijit.MenuItem" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconCut', 
     onClick:function(){alert('drama!')}">Drama</div> 
    <div data-dojo-type="dijit.MenuItem" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconCopy', 
     onClick:function(){alert('comedy!')}">Comedy</div> 
    <div data-dojo-type="dijit.MenuItem" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconPaste', 
     onClick:function(){alert('romance!')}">Romance</div> 
    <div data-dojo-type="dijit.MenuSeparator"></div> 
    <div data-dojo-type="dijit.PopupMenuItem"> 
     <span>Action</span> 
     <div data-dojo-type="dijit.DropDownMenu" id="submenu2"> 
      <div data-dojo-type="dijit.MenuItem" data-dojo-props="onClick:function(){alert('diehard!')}">Diehard</div> 
      <div data-dojo-type="dijit.MenuItem" onclick="alert('indiana!')">Indiana Jones</div> 
     </div> 
    </div> 
</div> 


</body> 
</html>