Jquery:插入函数的语法

时间:2010-06-10 22:15:00

标签: jquery

我正在尝试使用bezier路径插件集成动画,我似乎无法正确实现它。

剥离,这就是我所拥有的:

    $('#next2btn').live('click', function(){
       $(this).attr('id','next3btn');
        $('#content2').show(300, function() {
            $('#account').fadeTo(500,1.0)
            var arc_params = {
                center: [278,120],
                radius: 186,
                start: -90,
                end: 90,
                dir: -1
                };
            });
        $("#account").animate({path : new $.path.arc(arc_params)},1000);
});

所以,我正在尝试将这段代码添加到我所拥有的内容中:

    var arc_params = {
                center: [278,120],
                radius: 186,
                start: -90,
                end: 90,
                dir: -1
              };
        });
$("#account").animate({path : new $.path.arc(arc_params)},1000)

与其他人一样独立工作。

我认为这是关于声明变量以及我在哪里做的事情。

点击按钮,我实际上是在链接几个不同的动画/动作。

感谢您的任何见解 - KJ

2 个答案:

答案 0 :(得分:1)

你的假设是正确的。当你在arc_params的回调函数中声明show时,它只在函数内部可见,而不在它之外,它在下面的代码中。在函数外部声明它,因此它将对您的动画函数可见。

以下是一个简单的示例,说明它是如何工作的,与任何其他代码无关:

var a = "outside function";
function someFunction() {
    var b = "inside function";
}

alert(a); //alerts correctly
alert(b); //gives error: 'b is not defined' (as it is not visible from outside the function

答案 1 :(得分:0)

您发布的那段代码本身不起作用;它在语法上是不正确的(不匹配))。

你很可能会想要:

$('#next2btn').live('click', function(){
    $(this).attr('id','next3btn');

    $('#content2').show(300, function() {
        $('#account').fadeTo(500,1.0);

        var arc_params = {
                center: [278,120],
                radius: 186,
                start: -90,
                end: 90,
                dir: -1
            };

        $("#account").animate({
            path : new $.path.arc(arc_params)
        }, 1000);
    });
});

(当然,这与以下内容相同:)

$('#next2btn').live('click', function(){
    $(this).attr('id','next3btn');

    $('#content2').show(300, function() {
        $('#account').fadeTo(500,1.0);

        $("#account").animate({
            path : new $.path.arc({
                center: [278,120],
                radius: 186,
                start: -90,
                end: 90,
                dir: -1
            })
        }, 1000);
    }); 
});