我具有以下mouseenter
/ mouseleave
函数:
$('.obj').on('mouseenter', function(){
var obj_top = $(this).offset().top,
obj_max = obj_top + 10;
}).on('mouseleave', function(){
var obj_top = $(this).offset().top,
obj_max = obj_top + 50;
});
由于所有事情都发生在同一个对象中,因此我是否可以在整个函数中重用
obj_top
变量而不必重复它? 最佳答案
您不能因为这些变量在声明它们的函数作用域内是局部的,除非您在共享作用域内声明它们。
但是,如果您不想再重复一次,则可以对mouseenter
和mouseleave
使用单个事件处理程序,并检查event.type
来确定是哪个事件导致了触发,具体取决于要添加到obj_top
的值以找出obj_max
$('.obj').hover(function (e) {
var obj_top = $(this).offset().top,
obj_max = obj_top + (e.type == 'mouseenter' ? 10 : 50);
});
关于javascript - jQuery具有相同变量的多功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32094186/