在jquery函数中设置变量

时间:2012-04-04 08:23:11

标签: javascript jquery function variables

在我的init我设置了一些变量和一个使用这些变量的动画。


如果我想在clickSlide中使用相同的动画/变量怎么办? http://jsfiddle.net/lollero/4WfZa/(这显然不起作用。)

我可以将其设为全局http://jsfiddle.net/lollero/4WfZa/1/(删除var


问题:有没有更好的方法,或者这是完全可行的方式吗?

3 个答案:

答案 0 :(得分:2)

将变量放在函数外部,然后获取值

var getWidth ;
var getHeight ;

$(function(){

    var slideBox = {

        gb: $('#box'),

        init: function() {

                sb = this,
                getBox = sb.gb,
                getWidth = getBox.width(),
                getHeight = getBox.height();
            getBox.animate({ marginLeft: '+='+getWidth }, 600 );

            $("#button").on("click", this.clickSlide);
        },

        clickSlide: function() {

            getBox.animate({ marginLeft: '+='+getWidth }, 600 );
        }
    };

    slideBox.init(); 
});

比在函数中使用,以便您可以获得单击功能

中的线索

答案 1 :(得分:1)

如果你要经常使用它们,我会把它们作为物体的属性。

答案 2 :(得分:0)

您的变量似乎没必要,您可以访问您需要的所有内容: http://jsfiddle.net/4WfZa/6/。如果确实需要存储它们,可以随时将它们添加到slideBox对象中,然后在init中填充它们。这样,变量就会存储在对象中,并可以在其中的任何函数中使用。

有关javascript命名空间的精彩文章,包括如何设置私有变量和公共变量,请参阅this article