私はこの 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()");
このmenuButtonClickHandler()
関数は、次のコードで Pages.define 関数の直後に宣言されます。
function menuButtonClickHandler() {
var messageDialog = new Windows.UI.Popups.MessageDialog("Here's your menu");
}
ボタンをクリックすると、次の例外が発生します。
0x800a1391 - JavaScript ランタイム エラー: 'menuButtonClickHandler' が定義されていません
この関数をどこで「定義」すると思いますか? テンプレートは、その関数が既に存在するJSファイルの他のすべてのコードを使用しているため、関数を使用できるはずです。
また、いくつかの奇妙な理由で、使用するとイベントを追加することさえできませんaddEventListener
:
menuButton.addEventListener("click", buttonClickHandler, false);