Javascript 如何在Jquery中调用外部函数内部动画完成函数

Javascript 如何在Jquery中调用外部函数内部动画完成函数,javascript,jquery,html,Javascript,Jquery,Html,我在我的一个网站上有以下代码。我有一个声明的函数名为“pressedTab(tab)” 当我试图在下面的animate complete函数中调用它时,$('#firstShow')。animate({'margin-left':'-='+go+'px'},1000,'linear',function(){…按tab(tab);}它不工作 我知道这是一个范围的事情,但有人能帮我修复代码吗?奇怪的是,这段代码已经运行了多年。去年它没有正常工作 <script type="text/javas

我在我的一个网站上有以下代码。我有一个声明的函数名为“
pressedTab(tab)

当我试图在下面的animate complete函数中调用它时,
$('#firstShow')。animate({'margin-left':'-='+go+'px'},1000,'linear',function(){…按tab(tab);}
它不工作

我知道这是一个范围的事情,但有人能帮我修复代码吗?奇怪的是,这段代码已经运行了多年。去年它没有正常工作

<script type="text/javascript">
$(document).ready(function () {

    $('.tab1').click(function () {
        name('tab1');
    });
    $('.tab2').click(function () {
        name('tab2');
    });
    $('.tab3').click(function () {
        name('tab3');
    });

    function name(tab) {
        function pressedTab(tab) { //FUNCTION THAT I NEED HELP WITH
            if (tab == 'tab1') {

                $('#img-2 #folder-tab-3').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
                $('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('.tab1 p').removeClass('current').addClass('current');
                $('.tab2 p').removeClass('current');
                $('.tab3 p').removeClass('current');

                $('#tug').hide('fast');
                $('#tugImages').hide('fast');
                $('#vessels').show();
                $('#vessels2').hide(0);
            } else if (tab == 'tab2') {

                $('#img-2 #folder-tab-3').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
                $('.tab1 p').removeClass('current');
                $('.tab2 p').removeClass('current').addClass('current');
                $('.tab3 p').removeClass('current');

                $('#tug').hide('fast');
                $('#tugImages').hide('fast');
                $('#vessels').hide(0);
                $('#vessels2').show();

            } else {

                $('#img-2 #folder-tab-3').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
                $('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
                $('.tab1 p').removeClass('current');
                $('.tab2 p').removeClass('current');
                $('.tab3 p').removeClass('current').addClass('current');

                $('#tug').show();
                $('#tugImages').show();
                $('#vessels').hide(0);
                $('#vessels2').hide(0);
            }
        }

        if ($('#firstShow').attr('time') == "0") {
            var go = "250";
            $('#firstShow').animate({
                'margin-left': '-=' + go + 'px'
            }, 1000, 'linear', function () {

                $(this).attr('time', "1");
                $('.tab1').attr('time', "1");
                $('.tab2').attr('time', "1");
                $('.tab3').attr('time', "1");
                //Show the right folder
                $('#folder-tab-1').show("fast");
                $('#folder-tab-2').show("fast");
                $('#img-2 > #folder-tab-3').show("fast");
                //Hide the Upper of the folder
                $('#img-1').hide("fast");
                $('#firstShow #folder-tab-3').hide("fast");
                //alert(tab);
                pressedTab(tab); //FUNCTION WHERE I WOULD LIKE TO BE CALLED BUT IT'S NOT
            });

        } else {
            pressedTab(tab);
        }
    }
});
</script>

$(文档).ready(函数(){
$('.tab1')。单击(函数(){
名称(“tab1”);
});
$('.tab2')。单击(函数(){
名称(“tab2”);
});
$('.tab3')。单击(函数(){
名称(“tab3”);
});
函数名(选项卡){
功能按tab(tab){//我需要帮助的功能
如果(tab==“tab1”){
$(“#img-2#folder-tab-3”).removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
$('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('.tab1 p').removeClass('current').addClass('current');
$('.tab2 p').removeClass('current');
$('.tab3 p').removeClass('current');
$('tug')。隐藏('fast');
$(“#图像”).hide('fast');
$('船舶').show();
$('#vessels2')。隐藏(0);
}否则如果(tab=='tab2'){
$(“#img-2#folder-tab-3”).removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
$('.tab1 p').removeClass('current');
$('.tab2 p').removeClass('current').addClass('current');
$('.tab3 p').removeClass('current');
$('tug')。隐藏('fast');
$(“#图像”).hide('fast');
$(“#容器”)。隐藏(0);
$('#vessels2').show();
}否则{
$(“#img-2#folder-tab-3”).removeClass('zindexUp').removeClass('zindexDown').addClass('zindexUp');
$('#folder-tab-1').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('#folder-tab-2').removeClass('zindexUp').removeClass('zindexDown').addClass('zindexDown');
$('.tab1 p').removeClass('current');
$('.tab2 p').removeClass('current');
$('.tab3 p').removeClass('current').addClass('current');
$('#tug').show();
$(“#图像”).show();
$(“#容器”)。隐藏(0);
$('#vessels2')。隐藏(0);
}
}
if($('#firstShow').attr('time')=“0”){
var go=“250”;
$('#firstShow')。制作动画({
'左边距':'-='+go+'px'
},1000,“线性”,函数(){
$(this.attr('time',“1”);
$('.tab1').attr('time','1');
$('.tab2').attr('time','1');
$('.tab3').attr('time','1');
//显示正确的文件夹
$('#folder-tab-1')。显示(“快速”);
$('#folder-tab-2')。显示(“快速”);
$(“#img-2>#folder-tab-3”).show(“fast”);
//隐藏文件夹的上部
$('img-1')。隐藏(“快速”);
$(“#firstShow#folder-tab-3”).hide(“fast”);
//警报(选项卡);
按tab键(tab);//函数,其中我希望被调用,但它不是
});
}否则{
按选项卡(选项卡);
}
}
});

动画(…)
中的回调函数将在
名称(选项卡)
之后被调用,该上下文没有访问
名称(选项卡)
函数的范围,但它可以访问全局范围。尝试将
按tab(选项卡)
置于
$(文档)之外。就绪(…)
它应该可以工作。

你能为我们添加JSIDLE吗?最好你把
pressedTab
函数移到
name
函数之外。我看不出你为什么要把
pressedTab
函数放在
name
函数里面。我以前试过从name中移出函数,但没有运气。我又试了一次n以防万一,但仍然不走运。这不是问题@ChamikaSandamali按照您的建议做了,但仍然没有在JSFIDLE上调用try。正如您所见,这不是范围问题。可能您的站点结构已更改(元素现在有另一个id和类)或其他名为pressedTab的函数覆盖了您的函数。。