提问人:Renato Ramos Puma 提问时间:6/16/2023 最后编辑:BarmarRenato Ramos Puma 更新时间:6/16/2023 访问量:28
jQuery我无法访问e.currentTarget中的getAttribute属性
jQuery I can't access to getAttribute attribute in e.currentTarget
问:
我正在使用带有 setTimeout 的箭头函数,并且在访问单击的元素时遇到问题。getAttribute
此问题的原因可能是什么?
let myTimeout;
const time = 2000;
$(document).on("touchstart", "figure img", (e) => {
myTimeout = setTimeout(function(e) {
var figure = e.currentTarget;
var img = figure.querySelector("img");
var src = img.getAttribute("src");
console.log("src>" + src);
console.log("PRESS DELAY");
}, time);
});
<section>
<figure>
<img src="https://picsum.photos/536/354" />
</figure>
</section>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
答:
3赞
dave
6/16/2023
#1
问题在于
您的事件侦听器设置为已经(因为您这样做了,所以当您这样做时,它会尝试查找 img 的子 img,这没有意义。
e
img
"figure img"
figure = e.currentTarget; img = figure.querySelector('img')
中的函数隐藏变量,因此在该函数内部未定义。
setTimeout
e
e
它应如下所示:
let myTimeout;
const time = 2000;
$(document).on("touchstart", "figure img", (e) => {
myTimeout = setTimeout(function() {
var img = e.target;
var src = img.getAttribute("src");
console.log("src>" + src);
console.log("PRESS DELAY");
}, time);
});
<section>
<figure>
<img src="https://picsum.photos/536/354" />
</figure>
</section>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
评论
0赞
Renato Ramos Puma
6/16/2023
你说得很对,我很傻。非常抱歉。在你的帮助下,我学到了很多东西。
评论