在 Polymer 中从发送者获取数据值
Getting data- value from sender in Polymer
我正在尝试在 Polymer 中创建一个灯箱组件,它的子项是多个 <img>
标签。这些将有一个 src
,这是一个缩略图和一个 data-fullimage
属性,它将包含完整尺寸图像的路径。
在 Polymer 组件中,我在图像内容选择器上设置了点击标签,任何 Javascript 调用都使用 sender.xyz
return content
标签,而不是图像标签,因此不允许我检索完整图像的路径。有什么方法可以获取被点击图像的 data-fullimage
,甚至 src
值(如果需要)?
聚合物成分
imageClick: function(event, detail, sender)
{
console.log(sender);
}
实施
<paper-lightbox>
<img src="img/one.png" data-fullimage="img/one-large.png"></img>
<img src="img/two.png" data-fullimage="img/two-large.png"></img>
</paper-lightbox>
试试这个
HTML:
<paper-lightbox>
<img src="img/one.png" on-tap="{{imageTap}}" data-fullimage="img/one-large.png"></img>
<img src="img/two.png" on-tap="{{imageTap}}" data-fullimage="img/two-large.png"></img>
</paper-lightbox>
JS:
imageTap: function(sender){
var fullImage = sender.target.attributes["data-fullimage"];
}
无需在 img
标记上放置点击处理程序。此外,这不起作用,因为它们未绑定到 paper-lightbox
元素中的函数。你要的是
event.path[0].getAttribute("data-fullimage")
但这只有在您的 DOM 元素仅由一个元素组成时才有效。如果您的 light DOM 元素更复杂,但应该可以在任何地方单击它们,请改用此表达式
event.path[[].indexOf.call(event.path, sender) - 1].getAttribute("data-fullimage")
我正在尝试在 Polymer 中创建一个灯箱组件,它的子项是多个 <img>
标签。这些将有一个 src
,这是一个缩略图和一个 data-fullimage
属性,它将包含完整尺寸图像的路径。
在 Polymer 组件中,我在图像内容选择器上设置了点击标签,任何 Javascript 调用都使用 sender.xyz
return content
标签,而不是图像标签,因此不允许我检索完整图像的路径。有什么方法可以获取被点击图像的 data-fullimage
,甚至 src
值(如果需要)?
聚合物成分
imageClick: function(event, detail, sender)
{
console.log(sender);
}
实施
<paper-lightbox>
<img src="img/one.png" data-fullimage="img/one-large.png"></img>
<img src="img/two.png" data-fullimage="img/two-large.png"></img>
</paper-lightbox>
试试这个
HTML:
<paper-lightbox>
<img src="img/one.png" on-tap="{{imageTap}}" data-fullimage="img/one-large.png"></img>
<img src="img/two.png" on-tap="{{imageTap}}" data-fullimage="img/two-large.png"></img>
</paper-lightbox>
JS:
imageTap: function(sender){
var fullImage = sender.target.attributes["data-fullimage"];
}
无需在 img
标记上放置点击处理程序。此外,这不起作用,因为它们未绑定到 paper-lightbox
元素中的函数。你要的是
event.path[0].getAttribute("data-fullimage")
但这只有在您的 DOM 元素仅由一个元素组成时才有效。如果您的 light DOM 元素更复杂,但应该可以在任何地方单击它们,请改用此表达式
event.path[[].indexOf.call(event.path, sender) - 1].getAttribute("data-fullimage")