在我init
的设置中,我设置了一些变量和一个使用这些变量的动画。
如果我想在我的 中使用相同的动画/变量clickSlide
怎么办?
http://jsfiddle.net/lollero/4WfZa/(这显然行不通。)
我可以使它成为全球http://jsfiddle.net/lollero/4WfZa/1/(通过删除var
)
问题是:有没有更好的方法,或者这是完全没问题的方法?
在我init
的设置中,我设置了一些变量和一个使用这些变量的动画。
如果我想在我的 中使用相同的动画/变量clickSlide
怎么办?
http://jsfiddle.net/lollero/4WfZa/(这显然行不通。)
我可以使它成为全球http://jsfiddle.net/lollero/4WfZa/1/(通过删除var
)
问题是:有没有更好的方法,或者这是完全没问题的方法?
将变量放在函数之外,然后获取值
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();
});
而不是在功能中使用,以便您可以在点击功能中获得价值
如果您要经常使用它们,我会将它们设为对象的属性。
你的变量似乎没有必要,你可以像这样访问你需要的一切:http: //jsfiddle.net/4WfZa/6/。如果您确实需要存储它们,您可以随时将它们添加到 slideBox 对象,然后在 init 中填充它们。这样,变量就存储在对象上,并且可以在其中的任何函数中使用。
有关 javascript 命名空间的精彩文章,包括如何设置私有和公共变量,请参阅这篇文章。