我使用道场。
dojo.ready(function ()
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.on("click", function(i) {
console.log(input[i]);
// function
});
});
所以问题是:我得到了未定义的元素,所以我不能使用任何函数。我如何从列表中获取uniqe元素。 谢谢
答案 0 :(得分:2)
EDIT1:
看看这里的jsfiddle http://jsfiddle.net/frank123/YYyH9。
您可以在查询结果上使用foreach函数,如下所示
dojo.ready(function (){
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.forEach(function(node, index, arr){ // node is the elment
console.log("Index"+index);
dojo.on(node,"click", function() {
console.log("Clicked!");
// function
})
});
});
答案 1 :(得分:1)
传递给on
回调的参数是一个Event对象,而不是索引。尝试做
input.on("click", function(e) { //event object is conventionally named "e" or "evt"
console.log(e);
});
IIRC,输入节点本身应该在e.target
属性中可用。
https://dojotoolkit.org/reference-guide/1.10/dojo/on.html#id4
答案 2 :(得分:-1)
我使用frank提出的代码并使用dojo.connect
代替dojo.on
dojo.ready(function (){
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.forEach(function(node, index, arr){ // node is the elment
dojo.connect(node, "onclick", function() {
console.log("Clicked!" + node);
// function
dojo.query(node).after("");
});
});
});
要在节点上使用任何函数,我使用dojo.query(node)
。
谢谢。