2009-11-18 5 views
0

J'utilise ceci:aide onseek et sélecteurs

$(function() { 

      // initialize scrollable 
      window.api = $("div.scrollable").scrollable({ 
       clickable: true, 
       activeClass: "active", 
       onSeek: function() { 
        alert("current position is: " + this.getIndex()); 
        //remove highlighting from all images 
        $(".items img").removeClass("selected"); 
        var position = this.getIndex().toString(); 
        var thisItem = $(".items:nth-child(" + position + ")"); 
        //var thisItem = allItems(this.getIndex); 
        alert("item is: " + $(this).attr('alt')); 
        changeimage($(".items:nth-child(2)")); 
       } 
      }).circular().autoscroll({ 
       interval: 4000, 
       api: true, 
       autoplay: false, 
       steps: 1 

      }); 

     }); 

(juste tester) pour que je puisse parse l'élément en cours à mon ChangeImage() fonction Mais tout ce que je reçois dans mes alertes ne sont pas définies. Que dois-je faire ici pour obtenir l'élément en cours

Répondre

2

Vous pouvez obtenir l'élément en cours en utilisant l'api en appelant les éléments suivants:

var currentItem = window.api.getItems().eq(window.api.getIndex()); 

La fonction getIndex() obtient une position numérique de l'élément et getItems obtient un objet jquery avec tous les éléments qu'il contient. L'utilisation de la fonction eq() demande l'élément à la position donnée.

J'ai parfois eu de chance avec elle, mais dans le rappel onSeek, vous devriez être en mesure d'utiliser « cette » variable à la place du windows.api qui ressemblerait à ceci:

var currentItem = this.getItems().eq(this.getIndex()); 
+0

Merci, travaille pour moi. Comme ceci pointe vers l'API à l'intérieur des fonctions jquery TOOLS, vous pouvez l'écrire encore plus court: 'var currentItem = this.getItems(). Eq (this.getIndex());' –