0

我有这段 jquery 代码。这个想法是在单击 div1 时显示 div2 ,反之亦然。我正在缓慢加载 div。我看到了一些非常奇怪的东西。在加载 div 的动画发生并且用户单击两次之前,两个 div 都会显示在页面上。jquery 中是否有一种方法可以确保页面加载,然后如果单击 div2 会显示出来。我想一次显示一个 div。

 $(function () {

                $('#div1').click(function () {
                    $('#div1').hide();                
                    $('#div2').show(3000);
                });
                $('#div2').click(function () {
                    $('#div2').hide();
                    $('#div1').each(function()
                    {
                        if($(this).html()!='')    
                        $(this).show(3000);
                    }); 
                });
             });
4

2 回答 2

1

您可以尝试在调用之前清除动画队列hide

$(function () {
    $('#div1').click(function () {
        $('#div1').stop(true).hide();                
        $('#div2').show(3000);
    });
    $('#div2').click(function () {
        $('#div2').stop(true).hide();
        $('#div1').each(function()
        {
            if($(this).html()!='')    
            $(this).show(3000);
        }); 
    });
 });

http://api.jquery.com/stop/

于 2012-11-27T17:03:13.907 回答
0

代码是正确的,但在回调中显示 div。例子:

$('#div1').click(function () {
     $('#div1').hide(100, function() {
          $('#div2').show(3000);
     });                 
});

你可以发布你的页面的链接吗?也许依赖于 CSS。

于 2012-11-27T17:03:10.340 回答