Polymer Firefox中的聚合自定义元素数据集为空
我觉得Firefox正在“清除”自定义元素上的Polymer Firefox中的聚合自定义元素数据集为空,polymer,web-component,custom-element,Polymer,Web Component,Custom Element,我觉得Firefox正在“清除”自定义元素上的data-*属性 请参阅下面的脚本,它在Chrome中使用本机Web组件支持,但在Firefox中,似乎一旦运行了我的click事件处理程序,数据集就为空 document.addEventListener('DOMContentLoaded', function() { var popups = document.querySelectorAll('iron-image[data-popup]'); for (var i=0; i
data-*
属性
请参阅下面的脚本,它在Chrome中使用本机Web组件支持,但在Firefox中,似乎一旦运行了我的click事件处理程序,数据集就为空
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
});
}
});
document.addEventListener('DOMContentLoaded',function(){
var popups=document.querySelectorAll('iron-image[data popup]”);
对于(变量i=0;i
基本上,您必须使用Polymer.dom
来包装事件以对其进行规范化
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');
var event = Polymer.dom(ev); // you wrap the event using Polymer.dom
app.showPopup(event.localTarget.dataset.popup); // instead of target you should use localTarget
});
}
});
document.addEventListener('DOMContentLoaded',function(){
var popups=document.querySelectorAll('iron-image[data popup]”);
对于(变量i=0;i console.log(img.dataset.popup);//谢谢!非常好用。我错过了文档中的这一部分,可能只读过一次,然后就忘了想:“我可能永远不会需要它”,直到我读了;)@andre Side note顺便说一句,你应该在这里使用forEach而不是常规的for循环。