2013-06-12 156 views
1

我正在处理此Windows 8测试应用程序,并且正在使用网格应用程序模板。在itemDetail.html我有以下的HTML代码(我删除了该分区中的所有其他代码并添加该按钮,HTML的其余部分不变):无法将事件添加到按钮

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

我添加了以下JS代码在在itemDetail.js的Pages.define功能的准备成员:

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

的menuButtonClickHandler()函数用下面的代码的功能Pages.define右后宣称:

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

当我点击该按钮时,出现下列异常:

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

我在哪里定义这个函数?该模板正在使用来自JS文件的其他代码,其中该函数已经是该函数应该可用的。

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

我还没有做任何Windows 8应用程序编程,所以我不能肯定地说。 'setAttribute'方式看起来很糟糕,我不会添加这样的事件。 addEventListener通常是在JS中的方式,除了'buttonClickHandler'而不是'menuButtonClickHandler'这可能是一个错字或可能是你的问题,你的外观很好看 –

+0

我在写这篇文章时输入了这个内容,因为它没有效果,我转移到setAttribute函数。我现在要纠正这个错误。 – GregoryHouseMD

回答

1

您尝试添加事件监听器的方式是很肮脏,没有明显的工作:

也为一些奇怪的原因,我不能即使我使用的addEventListener添加事件。尝试这样的:

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