我对 JS 非常陌生,正在尝试修改基于 JavascriptKit jQuery 的 megamenu 系统以延迟显示菜单,直到鼠标悬停在锚点对象上指定时间。
我现在面临的问题是,在 mouseout 上调用的 clearTimeout 似乎只是挂起 setTimeout,而不是取消、清除、重置它。
在这一点上,我只是在 setTimeout 调用后显示警报。目前我将超时间隔设置为 2000 以进行测试。
例如,由于我现在将其设置为 2 秒延迟,如果我将鼠标悬停在对象上 4 次持续 1/2 秒,则第 5 次将鼠标悬停在对象上时,我的测试警报框会立即出现。
我认为 clearTimeout 应该完全破坏定时事件。为什么它似乎只暂停倒计时?
teststuff:function(){
if(jkmegamenu.toggletest==1)
{
jkmegamenu.executetimedcommand()
jkmegamenu.toggletest=0
}
else
{
//jkmegamenu.executetimedcommandcancel()
clearTimeout(jkmegamenu.teststuff);
}
},
executetimedcommand:function(){
if(jkmegamenu.toggletest==1)
{
alert('abcde')
}
},
canceltimedcommand:function(){
clearTimeout(jkmegamenu.teststuff);
},
Run Code Online (Sandbox Code Playgroud)