1
Firefoxがカスタム要素の属性を「クリア」しているという印象があります。Firefoxでポリマーのカスタム要素のデータセットが空です
以下のスクリプトはChromeのネイティブWebコンポーネントサポートで動作しますが、Firefoxでは、クリックイベントハンドラを実行するとデータセットが空になっているようです。
document.addEventListener('DOMContentLoaded', function() {
var popups = document.querySelectorAll('iron-image[data-popup]');
for (var i=0; i < popups.length; i++) {
var img = popups[i];
console.log(img.dataset.popup); // <--- this works
img.addEventListener('click', function(ev) {
var app = document.querySelector('sh-app');
app.showPopup(ev.target.dataset.popup); // <-- This fails, dataset is empty
});
}
});
側注:私もWebComponentsReady
イベントを試してみましたが、それは何らかの理由ですべてで焼成されません。
誰もがこの問題に遭遇して原因を理解していますか? これはPolymer(この場合は<iron-image>
)、Web Componentsポリフィル、またはFirefoxのその実装のバグですか?
ありがとうございます!それは完全に機能します。私はドキュメントのその部分を忘れていました。たぶん一度しか読んでいなかったし、それについて忘れてしまった:「私がやるまでは、おそらくそれは必要ないでしょう」 – Andre
@andreサイドノートbtw、通常のforループ。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures#Creating_closures_in_loops_A_common_mistake –