我有以下功能。目的是当您将鼠标悬停在具有班级0x100001ea0 <+0>: pushq %rbp
0x100001ea1 <+1>: movq %rsp, %rbp
0x100001ea4 <+4>: pushq %r15
0x100001ea6 <+6>: pushq %r14
0x100001ea8 <+8>: pushq %r13
0x100001eaa <+10>: pushq %r12
0x100001eac <+12>: pushq %rbx
0x100001ead <+13>: movq %rdi, -0x30(%rbp)
0x100001eb1 <+17>: movq %rsi, -0x38(%rbp)
0x100001eb5 <+21>: movq %rdx, -0x40(%rbp)
0x100001eb9 <+25>: movq %rcx, -0x48(%rbp)
0x100001ebd <+29>: movq %r8, -0x50(%rbp)
的项目上时,它会记录您在3秒后悬停的元素中的.toolTip
。但是,如果光标离开项目,它应该取消setTimeout而不显示消息。
&#34;超时设置&#34;和&#34;超时清除&#34;消息按预期触发,但命名函数仍会触发。我做错了什么?
data-tooltip
答案 0 :(得分:2)
您的变量toolTipMessage
仅存在于悬停时执行的函数的执行上下文中,当您下次悬停该元素时,该变量不再存在(或者更确切地说,您有不同的同名变量。)
要使变量在执行之间保持不变,您需要在封闭的执行上下文中定义该变量 - 例如在hover
处理程序之外。
var toolTipMessage = null;
$(document).on("hover",".toolTip", function() {
....
});