javascript - jQuery 隐藏和显示不起作用

标签 javascript jquery html

我在一次事件中有以下内容:

function onclickEvent () {
     $.ajax({
       url: "somePage.html",
       beforeSend: function( xhr ) {   
            $('#Element1').hide("slow",function() {                                                                                                                              
                $('#Loading').show("slow");
            }); 

        }

     }).done(function( data ) {                   
          $('#Loading').hide("slow",function() {                                                                                                                    
             $('#Element1').show("slow");                                                     
          });                                                      
    });

}

第一次效果很好,但第二次(第二次单击)在“完成”ajax 中加载不会隐藏,始终可见。

我做错了什么?

最佳答案

您首先隐藏了 Element1,因此您需要在成功/完成时首先显示它。 show()hide() 配对,反之亦然,似乎是根据优先级进行切换。看来这就是行为。您可能需要进一步阅读这些函数的文档。

<script src="jquery.min.js"></script>
<script>
function onclickEvent () {          
    $.ajax({
        url: "somePage.html",
        beforeSend: function( xhr ) {   
                $('#Element1').hide("slow",function() {                                                                                                                              
                    $('#Loading').show("slow");
                }); 
        }
    }).done(function( data ) {                   
        $('#Element1').show("slow", function() {
            $('#Loading').hide("slow");
        });
    });
};
</script>
<div id="Element1" style="display:block;">
    Element 1
</div>
<div id="Loading" style="display:none;">
    Loading
</div>
<button onclick="onclickEvent();">Click Me</button>

使用成功

function onclickEvent () {
    $.ajax({
        url: "somePage.html",
        beforeSend: function( xhr ) {   
            $('#Element1').hide("slow",function() {                                                                                                                              
                $('#Loading').show("slow");
            }); 
        },
        success: function( data ) {                   
            $('#Element1').show("slow", function() {
                $('#Loading').hide("slow");
            });
        }
    });
};

关于javascript - jQuery 隐藏和显示不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35301864/

相关文章:

asp.net - jQuery,ASP.NET

jquery获取json项目

PHP 表单 - 提交时停留在同一页面

javascript - 清除文本字段

javascript - 网页 : List remote FTP files via links that download them

javascript - 如何将元素动画移动到屏幕底部然后将其从 DOM 中删除

javascript - 检测文本中的超链接 - jQuery

javascript - SpookyJS 脚本完成后如何响应请求?

javascript - 为什么有时在注释 block 中定义 Javascript 函数?

javascript - HTML/CSS : Add Icon to Text Button