2013-06-12 159 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);