在基于模板的小部件中,我在模板中有一个表。桌子的主体将被建造 在我使用domConstruct的小部件中。问题是“a”元素的click事件 不起作用。实际上当我点击它并且日志记录没有显示任何错误或按摩时没有任何反应。(我的模板中的其他点击事件工作正常)问题只出在这个以编程方式使用domConstruct进行的事件中。 (有可能我应该解析" a" elemet?如果它是对的我不知道该怎么做。)
for (var i = 0; i < result.features.length; i++) {
domConstruct.place(lang.replace('<tr><td><a class="zoomto" data-dojo-attach- event="ondijitclick:zoomto">{t0}</a></td><td>{t1}</td><td>{t2}</td><td>{t3}</td></tr>',{
t0:i + 1,
t1:result.features[i].attributes.rent,
t2:result.features[i].attributes.OBJECTID,
t3:result.features[i].attributes.ACCT
}), this.rowNode);
}
…..
zoomto: function () {
console.log("zoomto is clicked ");
},
答案 0 :(得分:0)
您需要解析<a>
元素或使用dojo/on
附加事件。
for (var i = 0; i < result.features.length; i++) {
var element= domConstruct.toDom(lang.replace('<tr><td><a class="zoomto" data-dojo-attach-event="ondijitclick:zoomto">{t0}</a></td><td>{t1}</td><td>{t2}</td><td>{t3}</td></tr>',{
t0:i + 1,
t1:result.features[i].attributes.rent,
t2:result.features[i].attributes.OBJECTID,
t3:result.features[i].attributes.ACCT
}));
domConstruct.place(element, this.rowNode);
}
dojo.parser.parse(this.rowNode);
OR
for (var i = 0; i < result.features.length; i++) {
var element= domConstruct.toDom(lang.replace('<tr><td><a class="zoomto" >{t0}</a></td><td>{t1}</td><td>{t2}</td><td>{t3}</td></tr>',{
t0:i + 1,
t1:result.features[i].attributes.rent,
t2:result.features[i].attributes.OBJECTID,
t3:result.features[i].attributes.ACCT
}));
dojo.on(element, 'ondijitclick', this.zoomto);
domConstruct.place(element, this.rowNode);
}