2013-02-14 12 views
9

Quindi ho un piccolo problema (simile a questo che ho postato l'altro giorno: http://bit.ly/11JpbdY) con l'utilizzo di SlabText su un contenuto nascosto sul carico . Questa volta, sto cercando di ottenere slabText per aggiornare la visualizzazione di alcuni contenuti in un dispositivo di scorrimento (utilizzando il plug-in Carousel di Twitter Bootstrap).Utilizzare l'evento "slide" Carousel Bootstrap e la classe .next

seguente documentazione di Twitter (http://twitter.github.com/bootstrap/javascript.html#carousel) per il plugin carosello di Bootstrap, sto cercando di utilizzare slide evento in modo che ho ri-chiamo SlabText per renderlo viene visualizzata correttamente.

Utilizzo di strumenti di sviluppo Vedo che Carousel aggiunge una classe .next mentre elabora la diapositiva di un elemento .item al successivo. Questo viene quindi rimosso prima che la classe .active venga trasferita.

Posso accedere all'evento "diapositiva" senza alcun problema, ma il tentativo di ottenere l'elemento .next si sta rivelando problematico. Ecco una JSFiddle del mio codice finora: http://jsfiddle.net/peHDQ/

di mettere la mia domanda è sufficiente; come dovrei usare correttamente l'evento slide per attivare una funzione?

Per favore fatemi sapere se qualsiasi informazione aggiuntiva sarebbe utile.


Ulteriori note:

Come sono stato in grado di entrare in possesso della classe .next, sto cercando di farlo con una certa jQuery. Ecco il mio codice finora:

$('.carousel').carousel({ 
    interval: 5000 
}).on('slide', function (e) { 
    $(this).find('.active').next().find('.slab').slabText(); 
}); 

Da quello che ho capito questo dovrebbe essere afferrare ogni elemento .slab e innescando il plugin SlabText .... ahimè ho un errore:

"TypeError Uncaught: Object [object Object] non ha un metodo 'slabtext' "

può chiunque raccomandare quello che sto facendo male qui ...? Ho usato lo stesso identico processo per aggiungere una classe e funziona bene (come per questo JSFiddle: http://jsfiddle.net/peHDQ/2/)

risposta

14

Ho identificato il problema. Il problema è che l'evento 'slide' viene chiamato prima che la diapositiva successiva sia resa visibile. Ho aggiunto un piccolo ritardo e ora funziona bene. Prova questo:

$('.carousel').carousel({ 
     interval: 5000 
    }).on('slide', function (e) { 
     var xx = $(this); 
     setTimeout(function() { 
      xx.find('.active').next().find('.slab').slabText(); 
     } , 0); 
    }); 
+0

Mi dispiace che era solo un tipo o in questo post. Ho provato quello (http://jsfiddle.net/peHDQ/2/) e purtroppo ancora nessuna gioia! – Sheixt

+0

Ho aggiornato la mia risposta. Questo dovrebbe funzionare ora. –

+0

Grazie! Funziona, bene, fino a un certo punto. Quindi presumo che il problema sia che deve essere ritardato prima di elaborare la funzione. L'unico problema con l'impostazione del tempo a 50 millisecondi è che se l'utente si connette più lentamente il problema si verifica ancora. Se lo si imposta molto più a lungo, quelli su una connessione veloce vedono una balbuzie. Qualche suggerimento su questo? – Sheixt

Problemi correlati