Javascript 在jquery函数中设置变量
在我的Javascript 在jquery函数中设置变量,javascript,jquery,function,variables,Javascript,Jquery,Function,Variables,在我的init中,我设置了一些变量和一个使用这些变量的动画 如果我想在我的单击幻灯片中使用相同的动画/变量,该怎么办? (这显然行不通。) 我可以使它全球化(通过删除var) 问题是:有没有更好的方法,或者这种方法完全可以吗?将变量置于函数之外,然后获取值 var getWidth ; var getHeight ; $(function(){ var slideBox = { gb: $('#box'), init: function() {
init
中,我设置了一些变量和一个使用这些变量的动画
如果我想在我的
单击幻灯片中使用相同的动画/变量,该怎么办?
(这显然行不通。)
我可以使它全球化(通过删除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();
});
然后在函数中使用,以便您可以在clickside函数中获取vlue将变量置于函数之外,然后获取值
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();
});
而不是在函数中使用,这样您就可以在clickside函数中获得vlue。如果您要经常使用它们,我会将它们设置为对象的属性。如果您要经常使用它们,我会将它们设置为对象的属性。您的变量似乎不必要,您可以访问所有需要的内容,如下所示:
. 如果您确实需要存储它们,您可以始终将它们添加到slideBox对象,然后在init中填充它们。通过这种方式,变量存储在对象上,并且可以在对象中的任何函数中使用
有关javascript名称空间的精彩文章,包括如何设置私有和公共变量,请参阅。您的变量似乎不必要,您可以访问所有需要的内容,如下所示:
. 如果您确实需要存储它们,您可以始终将它们添加到slideBox对象,然后在init中填充它们。通过这种方式,变量存储在对象上,并且可以在对象中的任何函数中使用
有关javascript名称空间的精彩文章,包括如何设置私有和公共变量,请参阅。Global是Global。这与闭包有什么关系?不管怎样,我认为让它们成为对象的属性是最好的解决方案。全局就是全局。这与闭包有什么关系?无论如何,我认为将它们设置为对象的属性是最好的解决方案。我至少会将它们放在ready
事件处理程序中,这样它们就不是全局的。但在任何情况下,这都只允许有一个幻灯片框对象。我至少会将它们放在ready
事件处理程序中,这样它们就不是全局的。但在任何情况下,这都只允许有一个幻灯片框对象。