jquery onclick过早开火(?)

时间:2012-09-10 10:50:24

标签: javascript jquery setinterval clearinterval

我有以下脚本 - 我有一个菜单,当用户点击“关于”时,菜单消失,出现一些动画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;
            }
        });

我如何让这个工作?

1 个答案:

答案 0 :(得分:3)

event.stopPropagation()点击处理程序发出#about,以确保click事件不会冒泡到您的document对象。

$('#about').click(function(e){
   e.stopPropagation();
   // ...
   return false;
});