【发布时间】:2012-03-15 11:25:32
【问题描述】:
我有这个问题。我定义了一个删除链接的函数(只是为了举例),所以我希望在链接上的 mouseleave 事件之后,它会在 5 秒(或其他任何时间)后消失。此外,如果我将鼠标输入到同一链接上(表面上已运行 setTimeout),则该 setTimeout 将被取消。例如,以下代码有效,但由于我没有定义我的 setTimeout,我无法取消它。
function func() { $('a').remove(); }
//var interval = setTimeout( func , 5000);
$('body').on('mouseleave', 'a', function() {
setTimeout( func , 5000);
});
$('body').on('mouseenter', 'a', function(){
// clearTimeout(interval)
});
相反,取消注释第二行会使链接立即消失,即使我使用的函数 func 没有括号,所以我认为这不会是一个问题 (fiddle):
function func() { $('a').remove(); }
var interval = setTimeout( func , 5000);
$('body').on('mouseleave', 'a', function() {
interval
});
$('body').on('mouseenter', 'a', function(){
// clearTimeout(interval)
});
我可以做些什么来实现预期的功能?
谢谢!
【问题讨论】:
标签: javascript events settimeout