【问题标题】:Help me with javascript variable's scope帮助我了解 javascript 变量的范围
【发布时间】:2010-11-18 22:34:14
【问题描述】:

如何让变量“theOffset”在“localScroll”函数中工作。这是我的非工作代码:

jQuery(function( $ ){
    //initialize variable "theOffset"
    theOffset = 10; // <-- sets variable for inside of "localScroll" function

        $(window).resize(function() {
            theOffset = 20; // <-- does NOT reset inside "localScroll" function
        }); // end of window resize


    $.localScroll({
            target: '#content', 
            duration:1500,
            hash:true,
            offset: {top:0, left: theOffset}, // <-- I want to reset this on window resize 
            onBefore:function( e, anchor, $target ){
            },
            onAfter:function( anchor, settings ){
            }
    });
});

【问题讨论】:

  • 应该把var放在你不想在全局范围内的任何变量之前。
  • 您可以使用新的详细信息编辑您现有的问题stackoverflow.com/questions/4219478/…,无需针对同一问题开始新问题..
  • 啊啊。我还在学习stackoverflow的方法。

标签: javascript jquery scope


【解决方案1】:

几点建议:

您使用所有这些 {} 创建对象。尽管它可能看起来像简单的函数,但实际上并非如此。

offset 是传递给 $.localScroll 的对象的属性

一种想法是在 $.localScroll 之外创建对象(传递给 $.localScroll),将其设置为一个变量,然后引用该变量。

不确定这是否会按原样工作,可能还需要跳过一两圈。

类似的东西:

var theOffset = {
...
offset: {top:0, left: whatever},
...
};

$(window).resize(function() {
theOffset.offset = 20;
});

$.localScroll(theOffset);

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多