2011-10-18 4 views
0

Le code suivant placé dans document.ready() trouve tous les .scrollable div et crée une variable donnant chaque panneau un identifiant et d'activer un script de défilement.Calcul des variables de variables de ids

var orderit = 0; 
var scrolls = {}; 
$('.scrollable').each(function(){ 
    this.id = 'scrollp' + (++orderit); 
    scrolls[ 'myScroll' + this.id ] = new iScroll(this.id, { scrollbarClass: 'myScrollbar' }); 
}); 

Le problème est que plus tard je dois rafraîchir ces variables en appelant la méthode .refresh() intégrée dans le script. Pour ce faire, nous avons besoin du nom de la variable. Une façon d'obtenir la variable serait de calculer sa configuration comme ceci.

$('.dircore').click(function(){ 
    'myScroll' + $(this).attr('id').refresh(); 
} 

Cela fonctionne dans Firefox que même si Firebug dit qu'il est une erreur, mais il ne fonctionne pas dans d'autres navigateurs et est clairement pas la bonne façon de le faire.

J'espère qu'il y a assez d'informations pour travailler ici mais essentiellement nous devons utiliser l'id de l'élément que nous voulons rafraîchir pour travailler c'est variable et par conséquent appeler la méthode .refresh() contre sa variable.

Répondre

0

Ne peut pas utiliser la fonction .data() jQuery pour lier les données à l'élément, et le rappeler plus tard? De cette façon, vous êtes également à l'abri des références circulaires et des fuites de mémoire causées par eux.

Comme ceci:

$ (document) .ready (function() {. $ ('# Scroll5') des données ('données', valeur);});

Et puis:.

$ ('dircore ') chacun ({. $ (This) .data (' données') refresh();} function());

Ou quelque chose comme ça.

+0

Ill essayez ceci ..... –

+0

IM étant encore dit qu'il est indéfini lorsque la méthode d'actualisation est appelée –

+0

L'erreur suivante est renvoyée par FIREBUG ---- $ ("# myScroll" + refreshelement). data ("data" + refreshelement) est indéfini [Break On This Error] $ ('# myScroll' + refreshelement) .data ('data' + refreshelement) .refresh(); ----- J'ai tout débogué en utilisant des alertes pour comparer les données et tout devrait fonctionner –

Questions connexes