1

我怎样才能让 div #eFileStatus 和 #sFileStatus slideDown 然后等待 5 秒和 slideUp,这是我目前工作的功能,并在 5 秒后向上滑动。

function changeShare(addr)
{
    var conf = confirm("Changing the share url will cause the previous URL to not be accessible\nAre you sure?");
    if(conf == true)
    {   
        // ajax request to change share url, create div after #key containing status message
        $.post("/var/jq/ajaxrequest.php", { changeShare: addr },
        function(data){
            $('#key').after('<div id="'+data.returnValue[0]+'FileStatus">'+data.returnValue[1]+'</div>');
        }, "json");
        // reload data in #key with new share url
        $("#key").load(window.location.pathname+" #key > *");
        // slideup the status message div
        setTimeout(function(){
            $('#eFileStatus').slideUp();
            $('#sFileStatus').slideUp();        
        }, 5000);
    }
}

我努力了:

        $("#eFileStatus, #sFileStatus").hide().slideDown(function(){
            setTimeout(function(){
                $('#eFileStatus').slideUp();
                $('#sFileStatus').slideUp();        
            }, 5000);
        });

但这不会向下滑动,它也会停止向上滑动。

4

1 回答 1

2

好的,我找到了解决方案,如您所见,我将 slideDown 放置在 ajax 函数中,因此它等待 div 被创建,然后再尝试 slideDown。

function changeShare(addr)
{
    var conf = confirm("Changing the share url will cause the previous URL to not be accessible\nAre you sure?");
    if(conf == true)
    {   
        // ajax request to change share url, create div after #key containing status message
        $.post("/var/jq/ajaxrequest.php", { changeShare: addr },
        function(data){
            $('#key').after('<div id="'+data.returnValue[0]+'FileStatus">'+data.returnValue[1]+'</div>');
            // reload data in #key with new share url
            $("#key").load(window.location.pathname+" #key > *");
            // slideup the status message div
            $("#eFileStatus, #sFileStatus").hide().slideDown().delay(5000).slideUp();
        }, "json");
    }
}
于 2013-09-24T00:04:38.663 回答