質問

質問: クリックすると、evt.target.attributesがすべての属性を配列に保存していることがわかります。特定の属性値を取得するためにすべての属性を反復することなく、より簡単な方法はありますか?この例では、クリックされた要素の「note」属性の値が必要です。

テンプレート:

<a note="C" {{action "play" on="click"}}>></a>

ハンドラー]をクリックします(再生):

var keys = Ember.View.create({
    templateName: 'keys',
    notes: this.get('allKeys'),
    play:function(evt){
        var attributes= evt.target.attributes;
        console.log(attributes);
    }
役に立ちましたか?

解決

コントローラーがビューをバックしていない場合、1つの解決策は、イベントターゲットをjQueryオブジェクトに変えることです

play : function(event) {
    var note = $(event.target).attr("note");
    // More code here
}

他のヒント

別の方法は、属性値をパラメーターとしてアクションに渡すことです。

<a note="C" onClick={{action "play" value="target.note"}}></a>

そして、あなたは次のようにそれにアクセスすることができます:

...
actions: {
    play(note) {
        console.log(note);
    },
},
...
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top