2009-08-12 11 views
0

J'ai le code jQuery suivant. Comme vous pouvez le voir, j'ai une alerte qui affiche l'onglet en cours sur lequel je suis basé sur la valeur de this.getIndex().Fonction jQuery Ready Fonction Passage aux fonctions Javascript

Ma question est, comment puis-je avoir accès à cette valeur, de sorte que je puisse l'utiliser avec d'autres fonctions javascript qui ne résident pas dans la fonction (fonction)?

Je veux pouvoir dire à la place:

tabIndx = this.getIndex() et quand cette valeur change, je veux l'utiliser dans une autre fonction en bas, en dehors du prêt (fonction), disent

var tabIndx; 

$(document).ready(function(){ 

    // initialize scrollable 
    $("div.scrollable").scrollable({ 
     size: 1, 
     items: '#thumbs', 
     hoverClass: 'hover', 
       onSeek: function() { 
        alert("Current tab is: "+ this.getIndex()); 
       } 
    }); 
}); 


function showVal() { 
    alert("current tab selected is: "+ tabIndx); 
} 

Donc, chaque fois que je clique sur différents onglets, je veux que la fonction showVal() se déclenche avec la valeur correcte pour tabIndx.

Des idées.

Merci. Tony.

Répondre

2

Remplacer ceci:

alert("Current tab is: "+ this.getIndex()); 

Avec ceci:

tabIndx = this.getIndex(); 
showVal(); 

C'est tout ce qu'il ya à faire. La fonction $(document).ready() n'a rien de spécial. C'est juste une fonction JavaScript ordinaire qui vient avec jQuery, et que jQuery arrive à appeler quand le document est prêt.

Vous pouvez appeler librement d'autres fonctions et accéder aux variables déclarées en dehors du $(document).ready() comme vous le feriez avec n'importe quelle fonction JavaScript.

+0

Merci pour la réponse rapide Votey - disons que je voulais en fait aussi passer cette valeur tabInx dans un paramètre de fonction javascript - aurais-je besoin d'appeler cette Fonction avec le paramètre de la fonction onSeek? – tonyf

+0

Vous pouvez utiliser tabIndx de la manière que vous voulez tant qu'il est dans la portée. Comme vous l'avez déclaré ici, il est global, donc vous pouvez vous référer à tabIndx (y compris en le passant comme un argument) d'ANYWHERE dans votre script. Gardez à l'esprit, bien sûr, que bien que la variable soit dans la portée, elle n'aura pas de valeur significative jusqu'à ce que l'événement onSeek se déclenche, donc l'utiliser dans cette fonction est probablement sage. – VoteyDisciple

0

Vous avez déclaré votre tabIndx global, ce qui devrait suffire à vos besoins. J'INITIALISER aussi bien:

var tabIndx = 0; 

La façon dont vous utilisez this au sein de votre jQuery se référer à la div dans votre sélecteur (div.scrollable), afin de l'utiliser en conjonction avec votre fonction getIndex() est un peu sans signification. En se référant à tabIndx pour obtenir la valeur ou le réglage devrait être très bien.

À moins que je suis complètement mal compris ce que vous voulez ...

Questions connexes