2012-02-17 2 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> 

사람은 이유를 지적 할 수 있습니까? 나는 다음 요구 사항을 사용했습니다.

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

내가 시도해야하고 네,'dijit.DropDownMenu'도로드 할 수 없습니다. 'dijit.form.DropDownButton'으로 바꿀 수 있습니까? – OammieR

답변

0

당신이 도장에서 찾을 수없는 클래스 얻을 : 어떤 클래스

  1. 발견되지 않습니다? 포함하고있는 JS 파일이 필요한지 확인하십시오.
  2. 그렇지 않은 경우 필요한 require를 추가하십시오. 이미있는 경우 계속하십시오.
  3. firebug net console 확인 : 파일을 요청하고 있습니까?
  4. 그렇지 않은 경우, 요구 사항이 실행 중인지 확인하십시오. 그렇지 않은 경우 수정하십시오. 파일이 요구되고 있지만, 파일을 찾을 수 없습니다 왜 파일을
  5. 그림을보고 위치를 확인 (404 등) 밖으로 실수를 범하는 경우
1

라이브러리 참조 또는 버전 얻는 방법에 대한 정보는 제공하지 않았습니다. 그래서 나는 그것이 비슷한 오류를 얻을 수있는 유일한 방법은 googleapi의 것으로 가정합니다.

googleapi의 라이브러리를 참조하는 동안 작동하지 않는다는 것이 사실입니다. 나는 1.6을 사용하려고 시도했고 1.2 이하로 내려 갔다. 불운. 간단히 말해, dojo 라이브러리에 대한 참조에는 DropDownMenu 정의가 없습니다.

해결책은 googleapis를 사용하지 않는 것입니다. 다운로드 페이지에서 Dojo의 소스 코드 버전을 다운로드하고 해당 빌드에 대한 참조를 사용하십시오. 그것은 나를 위해 1.7.2 버전에서 일했습니다. 또는 Google이 아닌 다른 링크를 사용하십시오.

희망이 도움이 될 것입니다.

<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> 
관련 문제