phi*_*owe 0 javascript jquery settimeout
我有一个按钮,当它翻转时会改变div的背景.后台需要在计时器上更改,所以我使用setTimout来执行更改背景的方法.我认为clearTimeout会取消和我设置的超时,所以我把它放在mouseleave事件上.然而它似乎并没有停止超时.我的逻辑在这吗?
$("#h2Buzz").mouseenter(function () {
setTimeout(playV(), 2700);
setTimeout(playP(), 5400);
});
$("#h2Buzz").mouseleave(function () {
clearTimeout(playV());
clearTimeout(playP());
});
function playV() {
$("#ServicesBackgroundImage2").css("background-image", "url(/images/v.jpg)");
}
function playPn() {
$("#ServicesBackgroundImage2").css("background-image", "url(/images/p.jpg)");
}
Run Code Online (Sandbox Code Playgroud)
你正在使用setTimeout
和clearTimeout
错误地使用.该setTimeout
函数返回超时的句柄,该句柄将被传递clearTimeout
以停止它.
var playVTimeout;
...
playVTimeout = setTimeout(playV, 2700);
....
clearTImeout(playVTimeout);
Run Code Online (Sandbox Code Playgroud)
另外请注意,setTimeout(playV(), 2700);
将调用playV()
现在和2.7秒后执行它的返回值.你应该传递一个函数对象playV
.
为您分配一个变量setTimeout
,然后传递给clearTimeout
它以清除它,即
var play_timeout = setTimeout("playV()", 2700);
clearTimeout(play_timeout);
Run Code Online (Sandbox Code Playgroud)
(注意我在你的第一个setTimeout
参数附近添加了引号)
归档时间: |
|
查看次数: |
2856 次 |
最近记录: |