Javascript Can';不要将事件添加到按钮

Javascript Can';不要将事件添加到按钮,javascript,windows-8,dom-events,microsoft-metro,Javascript,Windows 8,Dom Events,Microsoft Metro,我正在开发这个Windows8测试应用程序,并且正在使用grid应用程序模板。在itemdail.html中,我有以下html代码(我删除了该div中的所有其他代码并添加了此按钮,html的其余部分未被触及): menuButtonClickHandler()函数在页面后面声明。使用以下代码定义函数: function menuButtonClickHandler() { var messageDialog = new Windows.UI.Popups.MessageDialog(&q

我正在开发这个Windows8测试应用程序,并且正在使用grid应用程序模板。在itemdail.html中,我有以下html代码(我删除了该div中的所有其他代码并添加了此按钮,html的其余部分未被触及):

menuButtonClickHandler()
函数在页面后面声明。使用以下代码定义函数:

function menuButtonClickHandler() {
    var messageDialog = new Windows.UI.Popups.MessageDialog("Here's your menu");
    }
单击该按钮时,出现以下异常:

0x800a1391-JavaScript运行时错误:“menuButtonClickHandler”未定义

我应该在哪里“定义”这个函数?该模板正在使用JS文件中已经存在该函数的所有其他代码,因此该函数应该对其可用

还有一些奇怪的原因,如果我使用
addEventListener
,我甚至无法添加事件:

menuButton.addEventListener("click", buttonClickHandler, false);

您尝试添加事件侦听器的方式非常糟糕,显然无法正常工作。试着这样做:

var menuButton = document.getElementById("menuLink");
menuButton.addEventListener("click", function(){
     //do something
}, false);

我还没有做任何Windows8应用程序编程,所以我不能肯定。
setAttribute
方式看起来很糟糕,我不会添加这样的事件。addEventListener通常是JS中的一种方式,你的按钮看起来很好,除了你有
buttonClickHandler
而不是
menuButtonClickHandler
,这可能是一个打字错误,也可能是你的问题。我在写这篇文章的时候键入了它,因为这没有任何效果,我转到了setAttribute函数。我现在就纠正这个错误。
menuButton.addEventListener("click", buttonClickHandler, false);
var menuButton = document.getElementById("menuLink");
menuButton.addEventListener("click", function(){
     //do something
}, false);