1

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);
}

[]の

4

2 に答える 2

5

サンプルコードを使用すると、次のように記述できます。

print(e.target.innerHtml);

showValue関数の内部で動作します。エラーなどが発生しますか?警告が心配な場合は、Elementまたはにキャストを追加できますDivElement

print((e.target as Element).innerHtml);
于 2013-02-18T20:14:53.677 に答える
1

以下のように試してください...それはあなたを助けます...

DivElement div;

void showValue(){
      window.alert(div.innerHTML); 
}

void main() { 
  div = query('#blah');
  div.on.click.add((Event e) => showValue());
}
于 2013-02-18T18:36:20.400 に答える