2010-11-18 12 views
0

変数 "theOffset"を "localScroll"関数の中で動作させるにはどうすればよいですか?javascript変数のスコープで助けてください

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){ 
      } 
    }); 
}); 
+4

あなたがグローバルスコープになりたくないすべての変数の前に 'var'を置く必要があります。 – mpen

+0

あなたは既存の質問を編集することができますhttp://stackoverflow.com/questions/4219478/javascript-variable-not-working-why新しい内容で、同じ問題で新しい質問を開始する必要はありません。 –

+0

aaahh。私はまだstackoverflowの方法を学んでいます。 – Dave

答えて

1

ポインタのカップル:

あなたはすべてのそれらの{}でオブジェクトを作成するこれは私の非稼働コードです。単純な関数のように見えるかもしれませんが、そうではありません。オフセット

は、オブジェクトのプロパティがに渡される$ .localScroll

一つの思考は、$ .localScrollの外($ .localScrollに渡された)オブジェクトを作成し、それを変数に設定することであり、その変数を参照してください。

これが機能するかどうかわからない場合は、フープまたは2つのスティルを飛び越さなければならないことがあります。線に沿って

何か:

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

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

$.localScroll(theOffset); 
関連する問題