Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery函数中设置变量_Javascript_Jquery_Function_Variables - Fatal编程技术网

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
事件处理程序中,这样它们就不是全局的。但在任何情况下,这都只允许有一个幻灯片框对象。