【发布时间】:2014-01-04 10:44:25
【问题描述】:
我正在努力使用 Metro 风格的应用程序。这是基本场景:按下主屏幕上的按钮后,您跳转到另一个页面。然后我动态创建部分 html 内容。例如:
<img id="bbb" src="/images/1.jpg">
<img id="ccc" src="/images/2.jpg">
<img id="ddd" src="/images/3.jpg">
然后我想将 JS 函数附加到我添加的每个 img 标签的“点击”事件中。 所以我做了这样的事情:
(function () {
"use strict";
WinJS.UI.Pages.define("/pages/myPage/myPage.html", {
ready: function (element, options) {
element.querySelector("#bbb").onclick = this.button1Click("ff");
element.querySelector("#ccc").onclick = this.button1Click("ee");
element.querySelector("#ddd").onclick = this.button1Click("dd");
},
button1Click : function (arg)
{
console.log(arg);
}
});
})();
当然部分:
element.querySelector("#bbb").onclick = this.button1Click("ff");
正在循环中。
但是这种附件功能在加载后执行一次(即使没有点击)并消失。我在调试模式下检查了它,并且在加载每个元素的 onclick 属性后立即具有空值。使用这种方法:
element.querySelector("#bbb").addEventListener("click", this.button1Click("ff"), false);
还有其他组合,比如
document.getElementById("bbb").addEventListener("click", this.button1Click("ff"), false);
等等。 给出相同的结果。感谢您的帮助。
【问题讨论】:
标签: javascript html windows-store-apps windows-8.1