我的页面底部有一个消息面板,我通过应用负边距显示。当它打开时,我想要它(无论哪个):
当用户点击#panel-close时关闭(这是在面板上,所以 仅在打开时可见
或者
6秒后关闭
我的代码一直工作,直到我重复打开和关闭它 - 然后时机出错了。我相信如果我通过点击关闭了面板,我需要取消setTimeout,但我不能让它工作。
$("#button").click(function() {
messagePanel.animate({
marginTop: '-50px' //open
}, 600 );
setTimeout(function(){
messagePanel.animate({
marginTop: '0px' //close
}, 600 );
},6000)
});
$('#panel-close').click(function() {
messagePanel.animate({
marginTop: '0px' //close
}, 600 );
});
任何帮助表示赞赏!
答案 0 :(得分:0)
如果需要取消setTimeout事件,则需要通过setTimeout函数获取timeoutID,例如。
var timeoutId;
timeoutId = setTimeout(function () {...});
$('#panel').click(function() {
clearTimeout(timeoutId);
}
请参阅https://developer.mozilla.org/en/DOM/window.clearTimeout了解更多详情