そのため、私には意味のないraphael.jsライブラリに奇妙な問題があります。場所を表すドットが付いた世界地図があります。ドットの多くは互いに重なり合っています。さまざまな場所を選び出したいときは、要素を前面に表示したいと思います。
次のコードが与えられます...
$("#peerIdSelector").change(function() {
var peerSelected = $(this).val();
var counter = 0;
var antiCounter = 0;
paper.forEach(function (el) {
var peer = el.data("peer");
if (peer === peerSelected) {
//el.toFront();
el.attr("fill", "#ffff00");
counter++;
} else {
el.attr("fill", "#00ffff" );
antiCounter++;
}
});
alert(counter + " peers updated for " + peerSelected + "\n" + antiCounter + " peers not updated")
});
el.toFront()
コメントアウトされると、コードは期待どおりに機能し、ifステートメントに基づいて正しい数の要素を見つけます。el.toFront()
ただし、ディレクティブを含めると、最初if (peer === peerSelected)
に検出されたものだけがtrueとして表示され、その後はfalseとして表示されます。
現時点では、この動作の原因について困惑しています。私はここで何が間違っているのですか?