2016-05-09 27 views
1

Ich versuche, Mausereignisse für ein durch dom-repeat gestempeltes Element einzurichten. Das Ereignis sollte eine Stiländerung für ein anderes Element in der dom-repeat-Vorlage auslösen, im Grunde genommen nur eine Farbänderung für ein Symbol in einem Feld bei einem Box-Hover.Wie wählt man dynamische Knoten in Polymer?

Da die automatische Knotenfindung für dynamische Knoten nicht verfügbar ist, wird in der Dokumentation angegeben, dass ich den $$-Selektor verwenden soll.

Allerdings gibt $$ nur den ersten Knoten im lokalen DOM zurück, der mit selector übereinstimmt, und ich möchte den Hover-Effekt für alle Boxen, die durch die dom-repeat-Funktion ausgestanzt werden.

Da $$ die Eigenschaft eines Elements auswählt, denke ich, dass ich ein dynamisches Attribut für das Symbol aus dem dom-repeat einrichten muss, damit ich jede wiederholte Symbolinstanz in den Mausereignisänderungsfunktionen auswählen kann.

Der Repeater gibt mir den Index, aber wie würde ich eine dynamische Eigenschaft mit ihm anstelle eines dynamischen Werts festlegen?

Was fehlt mir?

Antwort

1

Dies sollte das tun, was Sie wollen:

var nodes = Polymer.dom(this.root).querySelectorAll(...) 

Wenn Sie das DOM ändern Sie möglicherweise die Polymer.dom(...) API für die einzelnen Knoten verwenden müssen Sie ändern.

Polymer.dom(nodes[i])... 
+0

Vielen Dank! Habe es mit diesen Mausereignissen arbeiten lassen: 'hoverColor: function (e) { var nodes = Polymer.dom (this.root) .querySelectorAll ('. Icon'); var i = e.model.index; Polymer.dom (Knoten [i]). SetAttribute ('id', 'hoverIcon'); }, colorBack: Funktion (e) { var Knoten = Polymer.dom (this.root) .querySelectorAll ('. Icon'); var i = e.model.index; Polymer.dom (Knoten [i]). RemoveAttribute ('id'); } ' – atomikolex

+0

Freut mich zu hören! Danke für die Rückmeldung :) –

Verwandte Themen