javascript - 无法向按钮添加事件

标签 javascript windows-8 dom-events 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()");

menuButtonClickHandler() 函数在 Pages.define 函数之后声明,代码如下:

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);

最佳答案

您尝试添加事件监听器的方式非常肮脏并且显然不起作用。尝试这样的事情:

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

关于javascript - 无法向按钮添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076895/

相关文章:

javascript - 将功能添加到 Firefox 扩展 Javascript 文件

javascript - Ajax PHP 表单提交(包含图像和文本)

JavaScript 许多输入控件为 null 或 not

javascript - window.onload 与 document.onload

javascript - Mobile Safari - 触摸事件中的 event.target

javascript - 展开 JS 对象并转换数组

c# - Windows 8 中的自然语言处理

javascript - AS3 : Browser is Automatically telling Flash Player to Zoom Out

c# - 如何在 Metro 应用程序中序列化 Windows.Storage.StorageFile

javascript - 内联 JavaScript 代码是否会在文档加载事件之前执行?