Windows8应用程序中的Javascript

Windows8应用程序中的Javascript,javascript,windows-8,winjs,Javascript,Windows 8,Winjs,我在默认NavigationApp的home.js中有以下代码: (function () { "use strict"; WinJS.UI.Pages.define("/pages/home/home.html", { // This function is called whenever a user navigates to this page. It // populates the page elements with the app's data. read

我在默认NavigationApp的
home.js
中有以下代码:

(function () {
"use strict";

WinJS.UI.Pages.define("/pages/home/home.html", {
    // This function is called whenever a user navigates to this page. It
    // populates the page elements with the app's data.
    ready: function (element, options) {
        var submit = document.getElementById("submitBtn");
        submit.addEventListener("click", myFunc());
    }
});

function myFunc() {
    // Do some stuff here
}

})();

我遇到的问题是,函数
myFunc()
在应用程序启动时立即执行,而不是像我预期的那样在按下提交按钮时执行;这是为什么?

您正在将
myFunc()
的结果添加到您的侦听器中,您希望这样做

submit.addEventListener(“单击”,myFunc)


将函数添加为回调函数而不是函数的结果。

您的代码立即调用
myfunc
,并将结果传递给
addEventListener


您需要通过删除
()

更改
submit.addEventListener(“单击”,myFunc())来传递函数本身
submit.addEventListener(“单击”,myFunc)谢谢,您的答案也有效-尽管它工作得太好,并且停止了添加事件处理程序:-)