2010-11-18 16 views
0

Wie bekomme ich die Variable "theOffset" in der Funktion "localScroll" arbeiten. Das ist mein nicht-funktionierenden Code:Hilf mir mit dem Umfang der JavaScript Variable

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

sollten setzen 'var' vor allen Variablen, die Sie wollen nicht in globalen Bereich sein. – mpen

+0

Sie können Ihre bestehende Frage http://StackOverflow.com/Questions/4219478/Javascript-Variable-Not-Working-Why mit neuen Details bearbeiten, keine Notwendigkeit, neue Frage zum gleichen Problem zu starten. –

+0

aaahh. Ich lerne immer noch die Möglichkeiten des stackoverflow. – Dave

Antwort

1

Ein paar Hinweise:

Ihre Erstellen von Objekten mit allen, die {}. Obwohl es wie einfache Funktionen aussehen mag, sind sie es nicht.

Offset ist eine Eigenschaft des Objekts zu

.localScroll $ übergeben wird

Ein Gedanke ist, das Objekt zu machen außerhalb von $ .localScroll, stellen Sie es auf eine Variable (die $ .localScroll geben wird) und referenziere diese Variable.

Nicht sicher, ob dies so funktioniert, wie es ist, muss noch durch einen oder zwei Reifen springen.

Etwas entlang der Linien von:

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

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

$.localScroll(theOffset);