我的js代码
var gridLayout = page.getViewById("grid9");
var num;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
num = i * 3 + j;
//build the grids
var cell = new StackLayout();
cell.id = "GD" + num;
cell.className = "grid";
cell.on("tap", function () {
alert(this.id);// <============problem is here!
});
var img = new ImageModule.Image();
img.src = "~/img/u.png";
cell.addChild(img);
GridLayout.setRow(cell, i);
GridLayout.setColumn(cell, j);
gridLayout.addChild(cell);
}
}
该应用程序向我显示正确的9张照片,但在我触摸每个网格时提醒我undefined
。
将警报方法参数this.id
更改为cell.id
后,如果我点击网格 - 每个网格,它会显示GD8
。
看起来我没有获取单元格对象,因为我点击了网格,或者,在加载的方法执行后它不存在于页面上的objetcs。
我是以错误的方式使用事件上的方法还是陷入了JS技巧?
答案 0 :(得分:2)
您需要将args
参数传递给函数,以便它能够识别您刚刚点击的对象,具体取决于打印出该对象的ID:
cell.on("tap", function(args) {
alert(args.object.id);
});