2010-11-18 16 views
0

Comment faire pour que la variable "theOffset" fonctionne dans la fonction "localScroll". Ceci est mon code non travail:Aidez-moi avec la portée de la variable 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

devrait mettre 'var' avant toutes les variables que vous ne voulez pas être portée mondiale. – mpen

+0

vous pouvez modifier votre question existante http://stackoverflow.com/questions/4219478/javascript-variable-not-working-why avec de nouveaux détails, pas besoin de commencer une nouvelle question sur le même problème .. –

+0

aaahh. J'apprends toujours les manières de stackoverflow. – Dave

Répondre

1

Quelques conseils:

Votre création d'objets avec tous ceux {}. Bien que cela puisse ressembler à des fonctions simples, elles ne le sont pas.

offset est une propriété de l'objet passé à $ .localScroll

Une pensée est de faire l'objet (qui est passé à .localScroll $) en dehors de .localScroll $, fixé à une variable, et référence cette variable.

Je ne sais pas si cela fonctionnera tel quel, peut avoir à sauter à travers un cerceau ou deux encore.

Quelque chose le long des lignes de:

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

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

$.localScroll(theOffset);