如何在Jquery中调用外部函数
How to call outside function inside animate complete function in Jquery
我有以下代码在我的一个网站。我有一个名为"pressedTab(tab)
"的声明函数。
当我试图调用它下面的动画完整的函数,$('#firstShow').animate({'margin-left':'-='+go+'px'}, 1000, 'linear',function() {...pressedTab(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>
animate(...)
中的回调函数将在name(tab)
之后调用,该上下文中不能访问name(tab)
函数的作用域,但它可以访问全局作用域。试着把pressedTab(tab)
放在$(document).ready(...)
之外,它应该工作
相关文章:
- 如何从窗体调用外部javascript方法
- 如何使用Java在WebDriver中调用外部JavaScript
- 从Haml调用外部javascript中的ruby数组
- 有什么方法可以调用外部URI方案吗
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 在 HTML 中调用外部.js文件
- 如何使用Javascript调用外部库's函数内部的函数
- 调用外部JavaScript文件中的会话变量
- 如何使用javascript(和AJAX?)调用外部对象
- 调用外部javascript文件时出现问题
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 如何使用node.js在HTML中调用外部JavaScript文件
- 如何在 javascript 中内部调用外部函数
- 在 JavaScript 中调用外部脚本
- 调用外部JS函数验证电子邮件
- 使用 Node 应用程序 (KeystoneJS) 调用外部 API
- 使用调试器从内部函数调用外部函数中定义的变量
- 从 MXML 调用外部 JavaScript 函数
- 我将如何在单击时“调用”外部JavaScript文件
- 如何在内部异步函数完成运行后调用外部函数返回