提问人:Valentin S. 提问时间:8/2/2022 更新时间:8/2/2022 访问量:37
一个回调 Javascript 的一个实例
One instance for one callback Javascript
问:
我有这个代码
function test(param){
console.log(param);
}
$('div').each(function(){
div_id = $(this).attr('id')
$(this).on('mousemove', function(){
test(div_id)
});
});
但是在我的 中,我总是有最后一个值(最后一个 div 的 id)。console.log
如何每次都有回调函数的“一个实例”?
谢谢!
答:
0赞
Mischa
8/2/2022
#1
您可以一次为多个元素添加事件处理程序。这样:
function test(param){
console.log(param);
}
$('div').on('mousemove', function(){
test($(this).attr('id'))
});
0赞
Maks_Matkov
8/2/2022
#2
您需要 make 局部变量来保存数据,而不是全局变量。因此,您可以重新获取div ID的数据
`
function test(param){
console.log(param);
}
$('div').each(function(){
add here --> **var** div_id = $(this).attr('id')
$(this).on('mousemove', function(){
test(div_id)
});
});`
上一个:读取 div 并检查点击条件
评论
div_id = $(this).attr('id')
自const div_id = $(this).attr('id')
div_id
mousemove
each()
this.id
mousemove
div_id
是一个全局变量,它在循环中被覆盖,您应该将其更改为 或 。const
let