jQuery:先强制淡出()再强制预结束()div

jQuery:先强制淡出()再强制预结束()div,jquery,Jquery,在这个页面上,当您单击文本时,div1必须淡出并删除自身,div2必须出现。问题是,脚本首先在div2前面加上前缀,然后div1消失。如何强制脚本使div1淡出,然后在div2前面加上前缀 注: 这是我问题的最简单的例子。不要建议我仅仅更改文本或其他内容,因为在我试图实现的网页中,交换div是不可避免的(div有很多数据) 我必须使用prepend(),因此没有append()或appendTo()建议 提前谢谢 index.html <!DOCTYPE html> <html

在这个页面上,当您单击文本时,div1必须淡出并删除自身,div2必须出现。问题是,脚本首先在div2前面加上前缀,然后div1消失。如何强制脚本使div1淡出,然后在div2前面加上前缀

注:

  • 这是我问题的最简单的例子。不要建议我仅仅更改文本或其他内容,因为在我试图实现的网页中,交换div是不可避免的(div有很多数据)
  • 我必须使用prepend(),因此没有append()或appendTo()建议
  • 提前谢谢

    index.html

    <!DOCTYPE html>
    <html>
    
        <head>
            <script src = "http://code.jquery.com/jquery-1.10.1.min.js" type = "text/javascript"></script>
            <script src = "script.js" type = "text/javascript"></script>
        </head>
    
        <body>
            <div id = "div1">
                <h1 id = "text1">This is div1</h1>
            </div>
        </body>
    
    </html>
    
    
    这是第一组
    
    script.js

    $(document).ready (function() {
        $(document).on ("click", "#text1", function() {
    
            $("#div1").fadeOut (function() {
                $(this).remove();
            });
            $("body").prepend ("<div id = 'div2'></div>");
            $("#div2")
                .hide()
                .append ("<h1 id = 'text2'>This is div2</div>")
                .fadeIn();
        });
    
        $(document).on ("click", "#text2", function() {
    
            $("#div2").fadeOut (function() {
                $(this).remove();
            });
            $("body").prepend ("<div id = 'div1'></div>");
            $("#div1")
                .hide()
                .append ("<h1 id = 'text1'>This is div1</div>")
                .fadeIn();
        });
    });
    
    $(文档).ready(函数(){
    $(文档)。在(“单击”,“文本1”,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .fadeIn();
    });
    $(文档)。在(“单击”,“文本2”,函数()上){
    $(“#div2”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第1部分”)
    .hide()
    .append(“这是div1”)
    .fadeIn();
    });
    });
    
    您可以使用
    .promise()
    .done()

    $(文档)。在(“单击“,”文本1“,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    }).promise().done(function(){/您可以使用
    .promise()
    .done()

    $(文档)。在(“单击“,”文本1“,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    }).promise().done(function(){/要这样吗

    只需使用
    .delay(800)
    to.fadeIn('div')

    $(文档).ready(函数(){
    $(文档)。在(“单击”,“文本1”,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .delay(800.fadeIn();
    });
    $(文档)。在(“单击”,“文本2”,函数()上){
    $(“#div2”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第1部分”)
    .hide()
    .append(“这是div1”)
    .delay(800.fadeIn();
    });
    });
    
    你想要这样吗

    只需使用
    .delay(800)
    to.fadeIn('div')

    $(文档).ready(函数(){
    $(文档)。在(“单击”,“文本1”,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .delay(800.fadeIn();
    });
    $(文档)。在(“单击”,“文本2”,函数()上){
    $(“#div2”).fadeOut(函数(){
    $(this.remove();
    });
    $(“正文”)。前缀(“”);
    $(“第1部分”)
    .hide()
    .append(“这是div1”)
    .delay(800.fadeIn();
    });
    });
    
    试着这样做:

    $(文档)。在(“单击“,”文本1“,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .fadeIn();
    });
    });
    
    试着这样做:

    $(文档)。在(“单击“,”文本1“,函数()上){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .fadeIn();
    });
    });
    
    只需将fadeIn移到回调中即可。检查此处:

    $(文档).ready(函数(){
    $(文档)。在(“单击”,“文本1”,函数(){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .fadeIn();
    });
    });
    $(文档)。在(“单击”,“文本2”,函数(){
    $(“#div2”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第1部分”)
    .hide()
    .append(“这是div1”)
    .fadeIn();
    });
    });
    });
    
    只需将fadeIn移到回调中即可。检查此处:

    $(文档).ready(函数(){
    $(文档)。在(“单击”,“文本1”,函数(){
    $(“#div1”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第2分部”)
    .hide()
    .append(“这是div2”)
    .fadeIn();
    });
    });
    $(文档)。在(“单击”,“文本2”,函数(){
    $(“#div2”).fadeOut(函数(){
    $(this.remove();
    $(“正文”)。前缀(“”);
    $(“第1部分”)
    .hide()
    .append(“这是div1”)
    .fadeIn();
    });
    });
    });
    
    您是否尝试过将
    fadeIn
    放在
    淡出
    的回调中的
    remove
    之后?您是否尝试过将
    fadeIn
    放在
    淡出
    的回调中的
    remove
    之后?
        $(document).on ("click", "#text1", function() {
    
           $("#div1").fadeOut (function() {
              $(this).remove();
           }).promise().done(function(){ // <----here
              $("body").prepend ("<div id = 'div2'></div>");
              $("#div2")
                 .hide()
                 .append ("<h1 id = 'text2'>This is div2</div>")
                 .fadeIn();
           });        
        });
    
        $(document).on ("click", "#text2", function() {
           $("#div2").fadeOut (function() {
              $(this).remove();
           }).promise().done(function(){ // <----here
              $("body").prepend ("<div id = 'div1'></div>");
              $("#div1")
                 .hide()
                 .append ("<h1 id = 'text1'>This is div1</div>")
                 .fadeIn();
           });
        });
    
    $(document).ready (function() {
        $(document).on ("click", "#text1", function() {
    
            $("#div1").fadeOut (function() {
    
                $(this).remove();
    
            });
            $("body").prepend ("<div id = 'div2'></div>");
            $("#div2")
                .hide()
                .append ("<h1 id = 'text2'>This is div2</div>")
                .delay(800).fadeIn();
        });
    
        $(document).on ("click", "#text2", function() {
    
            $("#div2").fadeOut (function() {
    
                $(this).remove();
    
            });
            $("body").prepend ("<div id = 'div1'></div>");
            $("#div1")
                .hide()
                .append ("<h1 id = 'text1'>This is div1</div>")
                .delay(800).fadeIn();
        });
    });
    
    $(document).on ("click", "#text1", function() {
    
        $("#div1").fadeOut (function() {
    
            $(this).remove();
    
            $("body").prepend ("<div id = 'div2'></div>");
            $("#div2")
            .hide()
            .append ("<h1 id = 'text2'>This is div2</div>")
            .fadeIn();
        });
    });
    
    $(document).ready(function () {
        $(document).on("click", "#text1", function () {
    
            $("#div1").fadeOut(function () {
    
                $(this).remove();
                $("body").prepend("<div id = 'div2'></div>");
                $("#div2")
                    .hide()
                    .append("<h1 id = 'text2'>This is div2</div>")
                    .fadeIn();
    
            });
        });
    
        $(document).on("click", "#text2", function () {
    
            $("#div2").fadeOut(function () {
    
                $(this).remove();
                $("body").prepend("<div id = 'div1'></div>");
                $("#div1")
                    .hide()
                    .append("<h1 id = 'text1'>This is div1</div>")
                    .fadeIn();
            });
        });
    });