2012-04-04 91 views

回答

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

让你clickside功能

+0

我至少会把它们放在'ready'事件处理程序中,以便它们不是全局的。但无论如何,这只允许有一个幻灯片对象。 – 2012-04-04 08:28:57

1

如果你是要去使用它们,你可以得到vlue很多,我会让他们成为对象的属性。

+0

全球是全球性的。这与关闭有什么关系?无论如何,我认为使它们属性的对象是最好的解决方案。 – 2012-04-04 08:28:30

+0

你说得对。我错过了这一点。 – 2012-04-04 15:54:52

0

您的变量看起来没有必要,您可以访问您需要的所有内容: http://jsfiddle.net/4WfZa/6/。如果您确实需要存储它们,则可以将它们添加到slideBox对象中,然后将它们填充到init中。这样,变量就会存储在对象中,并且可以用在其中的任何函数中。

有关javascript命名空间的一篇很好的文章,包括如何设置私有变量和公共变量,请参见this article