无法向按钮添加事件

时间:2013-06-12 23:11:23

标签: javascript javascript-events windows-8 microsoft-metro

我正在使用这个Windows 8测试应用程序,我正在使用网格应用程序模板。在itemDetail.html中,我有以下HTML代码(我删除了该div中的所有其他代码并添加了此按钮,其余的html未被触及):

<div class="item-info">
     <button id="menuLink">Get me the menu</button>
</div>

我在itemDetail.js的Pages.define函数的ready成员中添加了以下JS代码:

var menuButton = document.getElementById("menuLink");
menuButton.setAttribute("onclick", "menuButtonClickHandler()");

使用以下代码在Pages.define函数之后声明menuButtonClickHandler()函数:

function menuButtonClickHandler() {
    var messageDialog = new Windows.UI.Popups.MessageDialog("Here's your menu");
    }

当我点击按钮时,我得到以下异常:

0x800a1391 - JavaScript runtime error: 'menuButtonClickHandler' is undefined

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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