Javascript 菜单项不工作

Javascript 菜单项不工作,javascript,dojo,Javascript,Dojo,我已经使用DOJO框架创建了应用程序的菜单和子菜单项。我可以在chrome中单击菜单项并导航到子菜单项,但在IE和firefox中,当我单击下面的主菜单时,我无法单击/选择子菜单项,这是我运行应用程序时在浏览器控制台上看到的错误。即使chrome显示错误消息,但我仍然可以看到子菜单项。 错误消息: TypeError: this._openPopup is not a function this._openPopup(); menu.js的代码: ..... dijit

我已经使用DOJO框架创建了应用程序的菜单和子菜单项。我可以在chrome中单击菜单项并导航到子菜单项,但在IE和firefox中,当我单击下面的主菜单时,我无法单击/选择子菜单项,这是我运行应用程序时在浏览器控制台上看到的错误。即使chrome显示错误消息,但我仍然可以看到子菜单项。 错误消息:

TypeError: this._openPopup is not a function
this._openPopup();
menu.js的代码:

.....
            dijit._MenuBase.prototype.onItemHover = function(item){
                    this.focusChild(item);
                    if(this.focusedChild.popup && !this.focusedChild.disabled){
                        this._openPopup(); //at this line it is showing the error.
                    }
                };
...

请建议,我如何解决此问题?

您有几个错误。首先,您将包括一个旧的Dojo版本。第二个错误是没有在屏幕上设置“占位符”。您正在使用未知id调用
placeAt
。您必须使用
id='wrapper'
创建一个div

不要让Dojo变得更难,使用给定的示例

在下一个提琴中,我修复了提琴(注意,我更改了dojo版本)


您可能在错误的范围内。您能提供一个JSFIDLE示例吗?而您使用Dojo的方式是错误的。看看dojo的
on
模块和
require
模块。@GuyT-。但在小提琴中,我无法显示菜单项。但是您可以在JSFIDLE中看到我的代码。谢谢。你为什么使用Dojo1.6而不是最新的(1.10 atm)?fiddle的语法要求Dojo 1.7或更高版本(除了onItemHover,这是完全错误的)在我的示例中没有这样做。请注意,我在末尾添加了
if
语句。这将产生更干净和可维护的代码。注意:不要将“|”用作菜单运算符。Dojo有他自己的。