【发布时间】:2011-05-26 07:19:59
【问题描述】:
我有一个在页面加载时调用的函数,它启动一个重复函数:
setTimeout(function () {
repeat();
}, 8000)
这个函数每 8 秒调用一次repeat(),在这个函数里面我有一些 ajax 来更新页面上的一个计数器。单击计数器会为用户提供一个包含许多消息的下拉菜单。计数器值等于用户拥有的消息数。有点像 Facebook 通知。
点击下拉菜单时我使用jQuery来隐藏和显示它:
$('#messages').click(function () {
$('#messagesDropDown').slideDown();
})
.mouseleave(function () {
$('#messagesDropDown').slideUp();
});
当#messagesDropDown 可见时,我想停止repeat() 函数,以防止在查看当前消息时更新消息列表。
在 .mouseleave 上我想再次启动repeat() 函数。
任何人都知道如何在.click 函数中“停止”重复函数并在.mouseleave 上重新启动它?
【问题讨论】:
-
setInterval() 重复不 setTimeout()
标签: javascript jquery