麻烦在jQuery中将if / else与.click结合使用

时间:2012-08-29 22:32:12

标签: jquery click if-statement

这是我的javascript

$(document).ready(function(){
        $('.frontpageimg').click(function(){
            $(this).data('clicked', true);
        });
        if('.frontpageimg').data('clicked') {
            $('#imagepos').slideUp(2000).fadeOut(2000);
            $('#contentpos').slideUp(2000).fadeIn(2000);
        } else {
            $('#imagepos').delay(8000).slideUp(2000).fadeOut(2000);
            $('#contentpos').delay(8000).slideUp(2000).fadeIn(5000);
        }
    });

该网站动画显示延迟后的主要内容,这应该发生。但是,我希望用户能够通过单击图像来跳过等待并激活更短的动画。目前,“其他”部分下的所有内容都有效,但单击图像时没有任何反应。

编辑:我已经改变了代码,试图让事情变得有效,但仍然没有按照我的意愿去做。

$(document).ready(function(){
        $('#imagepos').delay(8000).slideUp(2000).fadeOut(2000);
        $('#contentpos').delay(8000).slideUp(2000).fadeIn(5000);    
    });
    $('#frontpageimg').click(function(){
                $('div:animated').stop();
                $('div:animated').clearQueue();
                $('#imagepos').slideUp(2000).fadeOut(2000);
                $('#contentpos').slideUp(2000).fadeIn(2000);
            });

1 个答案:

答案 0 :(得分:3)

您正在尝试更改行为中的单击处理程序(在单线程环境中仅调用一次)。

您最好尝试从cluck处理程序中取消或修改动画序列(如果它仍在运行),或者,您可以检查动画序列以查看是否已单击该按钮