我有以下脚本 - 我有一个菜单,当用户点击“关于”时,菜单消失,出现一些动画div,当用户点击任何我希望动画div消失的地方时,菜单重新出现。 使用x = setinterval(blabla)重新启动动画,如果x不为0,则应该在document.click中停止。
问题是它会显示一秒钟并在点击“关于”后立即停止
jsfiddle - http://jsfiddle.net/EgtqF/
这里:
$('#about').click(function(){
$('#menu div').fadeToggle(1000);
$('#credits').fadeToggle(1000);
refreshId = setInterval(function(){
$('#credits').animate({'bottom':'100%'},5000,'linear',
function(){
$('#credits').css({'bottom':'0%'})})},
1000);
});
$(document).click(function(){
if(refreshId != 0){
clearInterval(refreshId);
$('#credits').fadeToggle(100);
$('#menu div').fadeToggle(100);
refreshId = 0;
}
});
我如何让这个工作?
答案 0 :(得分:3)
从event.stopPropagation()
点击处理程序发出#about
,以确保click
事件不会冒泡到您的document
对象。
$('#about').click(function(e){
e.stopPropagation();
// ...
return false;
});