在我的init
我设置了一些变量和一个使用这些变量的动画。
如果我想在clickSlide
中使用相同的动画/变量怎么办?
http://jsfiddle.net/lollero/4WfZa/(这显然不起作用。)
我可以将其设为全局http://jsfiddle.net/lollero/4WfZa/1/(删除var
)
问题:有没有更好的方法,或者这是完全可行的方式吗?
答案 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。