0

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


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

我可以使它成为全球http://jsfiddle.net/lollero/4WfZa/1/(通过删除var


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

4

3 回答 3

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(); 
});

而不是在功能中使用,以便您可以在点击功能中获得价值

于 2012-04-04T08:26:25.533 回答
1

如果您要经常使用它们,我会将它们设为对象的属性。

于 2012-04-04T08:27:40.147 回答
0

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

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

于 2012-04-04T08:45:56.347 回答