我有以下代码,但清除超时不起作用,我不明白为什么,有人有什么想法吗? (使用原型(prototype)框架)
function foo() {
$("navigation").observe('mouseover',
function (event) {
clearTimeout(bar);
}
).observe('mouseout',
function (event) {
setTimeout(bar, 1000);
}
);
}
function bar() {
alert("hi");
}
最佳答案
您需要将 setTimeout
的结果存储在一个变量中,并使用 clearTimeout
清除该变量,而不是函数:
var timer;
function foo() {
$("navigation").observe('mouseover',
function (event) {
clearTimeout(timer);
}
).observe('mouseout',
function (event) {
timer = setTimeout(bar, 1000);
}
);
}
function bar() {
alert("hi");
}
关于javascript - 使用 clearTimeout 取消超时事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893533/