【发布时间】:2019-02-12 05:14:44
【问题描述】:
我有一组 5 个图像,每个图像在过滤器列表中都有一个唯一的过滤器属性,而主图像在一个单独的 div 中。 主图像没有应用滤镜。
我想让用户点击侧边栏上的任何图像,然后将选定的过滤器应用于主图像。 我尝试为此使用事件侦听器,但我真的不明白发生了什么。
这是我的代码:
<img src='http://res.cloudinary.com/demo/image/upload/c_fill,e_art:audrey,h_80,w_120/sample' filter='audrey' className='filter' />
以及当用户选择图像时调用的事件监听器。
onFilterSelect = event => {
console.log(evenet.target) // returnsimg element
console.log(event.target.src) // returns src of img element
console.log(event.target.filter) // returns undefined
}
我想使用 filter='filter' 属性来调度一个将状态设置为新选择的过滤器的操作,但结果我一直未定义。
【问题讨论】:
-
不要认为它与反应有任何关系,过滤器不是
img的有效属性,不是吗?你试过data-attribute吗?<img src='http://res.cloudinary.com/demo/image/upload/c_fill,e_art:audrey,h_80,w_120/sample' data-filter='audrey' className='filter' />然后console.log(event.target.attributes['filter'].value)在你的处理程序中 -
如果使用自定义属性,@Olivier,则:
event.target.dataset.filter将返回属性字符串。 -
谢谢,是的,我忘记了
dataset属性
标签: javascript html reactjs cloudinary