Windows应用商店应用程序中的Javascript使用

Windows应用商店应用程序中的Javascript使用,javascript,html,windows-store-apps,windows-8.1,Javascript,Html,Windows Store Apps,Windows 8.1,我正在努力使用Metro风格的应用程序。这是一个基本场景:按下主屏幕上的一个按钮后,跳转到另一个页面。然后,我动态创建部分html内容。例如: <img id="bbb" src="/images/1.jpg"> <img id="ccc" src="/images/2.jpg"> <img id="ddd" src="/images/3.jpg"> })() 当然部分: element.querySelector("#bbb").onclick = thi

我正在努力使用Metro风格的应用程序。这是一个基本场景:按下主屏幕上的一个按钮后,跳转到另一个页面。然后,我动态创建部分html内容。例如:

<img id="bbb" src="/images/1.jpg">
<img id="ccc" src="/images/2.jpg">
<img id="ddd" src="/images/3.jpg">
})()

当然部分:

element.querySelector("#bbb").onclick = this.button1Click("ff");
这是一个循环

但在加载后,这种附件函数只执行一次(即使没有单击),然后消失。我在调试模式下检查了它,每个元素的loadonclick属性的值都是null。使用此方法:

element.querySelector("#bbb").addEventListener("click", this.button1Click("ff"), false);
还有一种组合,比如

document.getElementById("bbb").addEventListener("click", this.button1Click("ff"), false);
等等。
给出了相同的结果。非常感谢您的帮助。

我认为您需要删除onClick函数的paren,因为这将立即调用函数(如您所观察到的)

由此: 为此: 然后,您需要将参数放入click函数中,可能需要将其绑定到html本身。可能有一种方法可以同时绑定函数args,但我对WinJS不太熟悉

HTML 此外,您可以稍微简化一些,在HTML中使用类而不是ID,并一次性分配onClick处理程序

document.getElementById("bbb").addEventListener("click", this.button1Click("ff"), false);
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");
},
ready: function (element, options) {
    element.querySelector("#bbb").onclick = this.button1Click;
    element.querySelector("#ccc").onclick = this.button1Click;
    element.querySelector("#ddd").onclick = this.button1Click;
},
<img id="bbb" src="/images/1.jpg" data-arg="ff">
function button1Click() {
    // Get the clicked element
    // JQuery solution
    var arg = $(this).data('arg');
    console.log(arg)
}