在另一个函数中调用一个函数最简单的方法是什么?
我有:
function carousel_animation(){
$(carousel).transition({y: m + '=10', queue: false});
$('article div').promise().done(function(){
$(this).transition({x:2000}, 500, 'easeInCirc');
});
$('article div').promise().done(function(){
$(this).css({x:'-500'}).transition({x:'0'}, 1500, 'easeInOutQuart');
$(carousel_reset).css({opacity:0});
$(carousel_content)
.css({opacity:100, duration:1500});
});
};
我需要在这个函数中调用它,该函数由点击触发:
function carousel_4way (n, el, m) {
// remove outline from clicked element
el.blur();
// animate
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
transitionState = (transitionState == '-') ? '+' : '-';
**// I want the function to be placed inside, here**
transitionState2 = '-';
transitionState3 = '-';
transitionState4 = '-';
};
所以它就像一个非常重复的函数,需要在我的代码中多次使用。我该怎么做?
我使用Robert Koritnik的建议重写代码并且它正在工作:
function karuzela(n,el,m){
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
function carousel_4way(){
el.blur();
transitionState = (transitionState == '-') ? '+' : '-';
$(carousel).transition({y: m + '=10', queue: false});
};
function carousel_animation(){
$('article div').promise().done(function(){
$(this).transition({x:2000}, 500, 'easeInCirc');
});
$('article div').promise().done(function(){
$(this).css({x:'-500'}).transition({x:'0'}, 1500, 'easeInOutQuart');
$(carousel_reset).css({opacity:0});
$(carousel_content)
.css({opacity:100, duration:1500});
});
transitionState2 = '-';
transitionState3 = '-';
transitionState4 = '-';
};
carousel_4way()
carousel_animation()
};
但是,现在我还没有办法将这两个嵌套的函数放在外面并自行使用它们:
function karuzela(n,el,m){
var carousel = '#carousel-4way-nav-' + n
var carousel_content = '#carousel-4way-' + n
carousel_4way()
carousel_animation()
};
答案 0 :(得分:1)
......以及他们在个人功能中的可见度。当您尝试调用函数时,可能会收到carousel
和其他变量未定义的错误。
尝试更改您的功能以获得此签名:
function carousel_animation(carousel, carousel_content, carousel_reset, m)
{
...
}
或者因为你从其他变量生成那些选择器只是传递那些:
function carousel_animation(n, el, m)
{
var carousel = '#carousel-4way-nav-' + n;
var carousel_content = '#carousel-4way-' + n;
...
}
这可能不适用于我们不了解的同一功能的其他用途。但您必须了解变量范围。例如,carousel
变量是carousel_4way
函数的本地变量,因此其他函数(如果未在同一函数中定义)将无法看到它。因此,您必须:
答案 1 :(得分:0)
只需调用它
// I want the function to be placed inside, here
carousel_animation()