Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止jquery解决方案中的多个动画在垃圾邮件链接后中断_Jquery - Fatal编程技术网

防止jquery解决方案中的多个动画在垃圾邮件链接后中断

防止jquery解决方案中的多个动画在垃圾邮件链接后中断,jquery,Jquery,我在我的页面上有4个链接,它们将各自的div淡入淡出,并在必要时调整包含div的高度 当用户对这些链接进行垃圾邮件处理时,div会失去同步或相互重叠。我已经对此进行了研究,两种可能的选择是使用.stop()方法或一个布尔变量,单击每个链接时会选中该变量 我试着实现这两个目标,但没有任何乐趣。它们确实可以一次阻止多个功能的发生,但在尝试对链接发送垃圾邮件之后,它们最终会中断链接,而不会使任何内容淡入淡出 有人能解释一下我做错了什么吗?谢谢 var animation_enabled; animat

我在我的页面上有4个链接,它们将各自的div淡入淡出,并在必要时调整包含div的高度

当用户对这些链接进行垃圾邮件处理时,div会失去同步或相互重叠。我已经对此进行了研究,两种可能的选择是使用.stop()方法或一个布尔变量,单击每个链接时会选中该变量

我试着实现这两个目标,但没有任何乐趣。它们确实可以一次阻止多个功能的发生,但在尝试对链接发送垃圾邮件之后,它们最终会中断链接,而不会使任何内容淡入淡出

有人能解释一下我做错了什么吗?谢谢

var animation_enabled;
animation_enabled = 0;


function open_labels_div(){
    if(animation_enabled == 1){
        return;
    }
    else{
        animation_enabled = 1;
        if($("#labels_div").is(':hidden')){
            if($("#charts_div").is(':visible')){
                $("#charts_div").fadeOut(400, function() {
                    $("#labels_div").fadeIn(400, function (){
                        $("#charts_div").css("display","none");
                        $("#labels_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#blank_charts_div").is(':visible')){
                $("#blank_charts_div").fadeOut(400, function() {
                    $("#labels_div").fadeIn(400, function (){
                        $("#blank_charts_div").css("display","none");
                        $("#labels_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#reorder_div").is(':visible')){
                var minus = $("#reorder_div").height()-100;
                $('#tab_content').animate({'height': '-='+minus},800,"linear", function() {
                    $("#reorder_div").fadeOut(400);
                    $("#labels_div").fadeIn(800, function (){
                        $("#reorder_div").css("display","none");
                        $("#labels_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
        }
    }
}

function open_charts_div(){
    if(animation_enabled == 1){
        return;
    }
    else{
        animation_enabled = 1;
        if($("#charts_div").is(':hidden')){
            if($("#labels_div").is(':visible')){
                $("#labels_div").fadeOut(400, function() {
                    $("#charts_div").fadeIn(400, function (){
                        $("#labels_div").css("display","none");
                        $("#charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#blank_charts_div").is(':visible')){
                $("#blank_charts_div").fadeOut(400, function() {
                    $("#charts_div").fadeIn(400, function (){
                        $("#blank_charts_div").css("display","none");
                        $("#charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#reorder_div").is(':visible')){
                var minus = $("#reorder_div").height()-100;
                $('#tab_content').animate({'height': '-='+minus},800,"linear", function() {
                    $("#reorder_div").fadeOut(400);
                    $("#charts_div").fadeIn(400, function (){
                        $("#reorder_div").css("display","none");
                        $("#charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
        }
    }
}

function open_blank_charts_div(){
    if(animation_enabled == 1){
        return;
    }
    else{
        animation_enabled = 1;
        if($("#blank_charts_div").is(':hidden')){
            if($("#labels_div").is(':visible')){
                $("#labels_div").fadeOut(400, function() {
                    $("#blank_charts_div").fadeIn(400, function (){
                        $("#labels_div").css("display","none");
                        $("#blank_charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#charts_div").is(':visible')){
                $("#charts_div").fadeOut(400, function() {
                    $("#blank_charts_div").fadeIn(400, function (){
                        $("#charts_div").css("display","none");
                        $("#blank_charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
            else if($("#reorder_div").is(':visible')){
                var minus = $("#reorder_div").height()-100;
                $('#tab_content').animate({'height': '-='+minus},800,"linear", function() {
                    $("#reorder_div").fadeOut(400);
                    $("#blank_charts_div").fadeIn(400, function (){
                        $("#reorder_div").css("display","none");
                        $("#blank_charts_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                });
            }
        }
    }
}

function open_reorder(){
    if(animation_enabled == 1){
        return;
    }
    else{
        animation_enabled = 1;
        if($("#reorder_div").is(':hidden')){
            var add = $("#reorder_div").height()-100;
            $('#tab_content').animate({'height': '+='+add},800,"linear", function() {
                if($("#labels_div").is(':visible')){
                    $("#labels_div").fadeOut(400);
                    $("#reorder_div").fadeIn(400, function (){
                        $("#labels_div").css("display","none");
                        $("#reorder_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                }
                else if($("#charts_div").is(':visible')){
                    $("#charts_div").fadeOut(400);
                    $("#reorder_div").fadeIn(400, function (){
                        $("#charts_div").css("display","none");
                        $("#reorder_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                }
                else if($("#blank_charts_div").is(':visible')){
                    $("#blank_charts_div").fadeOut(400);
                    $("#reorder_div").fadeIn(400, function (){
                        $("#blank_charts_div").css("display","none");
                        $("#reorder_div").css("display","inline-block");
                        animation_enabled = 0;
                    });
                }
            });
        }
    }
}

<div id='options_tabs'>
    <ul>
        <li onclick='open_labels_div()'><a>Labels</a></li>
        <li onclick='open_charts_div()'><a>Charts</a></li>
        <li onclick='open_blank_charts_div()'><a>Blank Charts</a></li>
        <li onclick='open_reorder()'><a>Reorder</a></li>
    </ul>
</div>
<div id='tab_content'>
    <div id='labels_div'>
        <p>labels content</p>
    </div>
    <div id='charts_div'>
        <p>charts content</p>
    </div>
    <div id='blank_charts_div'>
        <p>blank charts content</p>
    </div>
    <div id='reorder_div'>
        <p>reorder content</p>
    </div>
</div>
var动画已启用;
动画_启用=0;
函数open_labels_div(){
如果(已启用动画==1){
回来
}
否则{
动画_enabled=1;
如果($(“#labels_div”)是(':hidden')){
如果($(“#图表_div”)是(':visible')){
$(“#图表分区”)。淡出(400,函数(){
$(“#labels_div”).fadeIn(400,函数(){
$(“#charts_div”).css(“display”、“none”);
$(“#labels_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#空白#图表_div”)是(':visible')){
$(“#空白#图表_div”)。淡出(400,函数(){
$(“#labels_div”).fadeIn(400,函数(){
$(“#空白图表_div”).css(“显示”、“无”);
$(“#labels_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#reorder_div”)是(':visible'),则为else{
var减号=$(“#重新排序分区”).height()-100;
$('tab_content')。动画({'height':'-='+减号},800,“线性”,函数(){
美元(“#再订购部门”)。淡出(400);
$(“#labels_div”).fadeIn(800,函数(){
$(“#reorder_div”).css(“显示”、“无”);
$(“#labels_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
}
}
}
函数open\u charts\u div(){
如果(已启用动画==1){
回来
}
否则{
动画_enabled=1;
如果($(“#图表_div”)是(':hidden')){
如果($(“#labels_div”)是(':visible')){
$(“#labels_div”).fadeOut(400,function(){
$(“图表分区”).fadeIn(400,函数){
$(“#labels_div”).css(“display”、“none”);
$(“#charts_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#空白#图表_div”)是(':visible')){
$(“#空白#图表_div”)。淡出(400,函数(){
$(“图表分区”).fadeIn(400,函数){
$(“#空白图表_div”).css(“显示”、“无”);
$(“#charts_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#reorder_div”)是(':visible'),则为else{
var减号=$(“#重新排序分区”).height()-100;
$('tab_content')。动画({'height':'-='+减号},800,“线性”,函数(){
美元(“#再订购部门”)。淡出(400);
$(“图表分区”).fadeIn(400,函数){
$(“#reorder_div”).css(“显示”、“无”);
$(“#charts_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
}
}
}
函数open\u blank\u charts\u div(){
如果(已启用动画==1){
回来
}
否则{
动画_enabled=1;
如果($(“#blank_charts_div”)。是(':hidden')){
如果($(“#labels_div”)是(':visible')){
$(“#labels_div”).fadeOut(400,function(){
$(“#空白#图表_div”).fadeIn(400,函数(){
$(“#labels_div”).css(“display”、“none”);
$(“#空白#u图表_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#图表_div”)为(':可见),则为else{
$(“#图表分区”)。淡出(400,函数(){
$(“#空白#图表_div”).fadeIn(400,函数(){
$(“#charts_div”).css(“display”、“none”);
$(“#空白#u图表_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
如果($(“#reorder_div”)是(':visible'),则为else{
var减号=$(“#重新排序分区”).height()-100;
$('tab_content')。动画({'height':'-='+减号},800,“线性”,函数(){
美元(“#再订购部门”)。淡出(400);
$(“#空白#图表_div”).fadeIn(400,函数(){
$(“#reorder_div”).css(“显示”、“无”);
$(“#空白#u图表_div”).css(“显示”、“内联块”);
动画_启用=0;
});
});
}
}
}
}
函数open_reorder(){
如果(已启用动画==1){
回来
}
否则{
动画_enabled=1;
如果($(“#reorder_div”)是(':hidden')){
var add=$(“#重新排序_div”).height()-100;
$('tab_content')。动画({'height':'+='+add},800,“linear”,function(){
如果($(“#labels_div”)是(':visible')){
美元("标签").淡出(400);;
<div id='options_tabs'>
    <ul>
        <li id="labels"><a>Labels</a></li>
        <li id="charts"><a>Charts</a></li>
        <li id="blank_charts"><a>Blank Charts</a></li>
        <li id="reorder"><a>Reorder</a></li>
    </ul>
</div>
<div id='tab_content'>
    <div id='labels_div'>
        <p>labels content</p>
    </div>
    <div id='charts_div'>
        <p>charts content</p>
    </div>
    <div id='blank_charts_div'>
        <p>blank charts content</p>
    </div>
    <div id='reorder_div'>
        <p>reorder content</p>
    </div>
</div>
var animation_enabled;
animation_enabled = 0;

// On click event, call "changeDivs" function
$("#options_tabs ul li").click(changeDivs);

// changeDivs function
function changeDivs() {
    // If the flag is true, animation is running, so trying to launch another one
    if(animation_enabled == 1){
        return;
    } else {
        // If not currently animating, do the div visibility change
        animation_enabled = 1;

        // 1st - get the id of the li item clicked (calling the function, so I used this)
        var originItem = $(this).attr('id');
        // Then set a variable which is the content div that will be visible
        var destinationDiv = $("#" + originItem + "_div");

        // Here I will fadeOut all div inside tab_content which are not #myLiItemName_div, and wait the end of the fade with promise(), then fadeIn the div #myLiItemName_div
        $("#tab_content div:not(#" + originItem + "_div)").fadeOut(750).promise().done(function() {
            destinationDiv.fadeIn(800).promise().done(function() { 
                animation_enabled = 0; });;
        });        
    }
}
<div id='options_tabs'>
    <h3>Labels</h3>
    <div>Labels content</div>
    <h3>Charts</h3>
    <div>Charts content</div>
    <h3>Blank Charts</h3>
    <div>Blank Charts content</div>
    <h3>Reorder</h3>
    <div>Reorder content</div>
</div>
$( "#options_tabs" ).accordion();