我正在使用dart开发一个应用程序,我想获得一个被点击的元素的价值。即:
HTML:
<div id="blah">Value!!</div>
落镖:
void main(){
query("#blah").onClick.listen(showValue);
}
void showValue(Event e){
//Get #blah's innerHtml based on the Event(Something like e.target.innerHtml or e.target.value)
}
任何?我知道如何在JS中做到这一点,但我想知道是否有办法在DART中做到这一点!
修改
感谢大家,我会更加清楚一点。我有一个循环,动态生成9个元素并将它们添加到容器中。
代码:
var j = 0;
var optionsSquare = query("#optionsPanel");
while(j < 9){
DivElement minorSquare = new DivElement();
var minorSquareHeight = optionsSquare.clientHeight/3;
var minorSquareWidth = optionsSquare.clientWidth/3;
minorSquare
..attributes = {"class": "miniSugg"}
..style.width = (minorSquareWidth.round()-2).toString().concat("px")
..style.height = (minorSquareHeight.round()-2).toString().concat("px")
..style.float = "left"
..style.border = "1px solid"
..innerHtml = (j+1).toString();
..onClick.listen(showOptionsSquare);
optionsSquare.children.add(minorSquare);
j++;
}
如果我尝试使用@ Pandian的方式,它可以工作,但我只得到循环中最后一个元素的值。我想要的是以某种方式,追踪被点击的元素并获得它的价值!
编辑2
伙计们,刚刚解决了!
如果有人需要这些信息,我会把这里的代码作为回购:
void showOptionsSquare(Event e){
window.location.hash = "#optionsPanel";
mainDiv.style.opacity = (0.2).toString();
DivElement clicked = e.target;
window.alert(clicked.innerHtml);
}
[]的
答案 0 :(得分:4)
使用您的示例代码,您只需编写
即可print(e.target.innerHtml);
在showValue
函数内部,它会起作用。你有错误吗?如果您担心警告,可以将演员表添加到Element
或DivElement
:
print((e.target as Element).innerHtml);
答案 1 :(得分:1)
尝试如下......它会帮助你......
DivElement div;
void showValue(){
window.alert(div.innerHTML);
}
void main() {
div = query('#blah');
div.on.click.add((Event e) => showValue());
}