Windows8应用程序中的Javascript
我在默认NavigationApp的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
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)代码>谢谢,您的答案也有效-尽管它工作得太好,并且停止了添加事件处理程序:-)