2013-08-25 11 views
5

Sono relativamente nuovo a JQuery, quindi non ero sicuro di dove cominciare questo problema.Esegue il ciclo di testo segnaposto in forma con JQuery?

Ho un modulo su un sito Web che desidero mostrare temporaneamente vari segnaposti e scorrere ciclicamente tra loro (per imitare un numero di opzioni che l'utente potrebbe immettere lì, come Alice, Bob, Charles, ecc. Per un modulo NAME immesso) prima che l'utente faccia clic per inserire il proprio testo.

Ho trovato questo esempio - http://jsfiddle.net/eFjnU/ (codice di seguito) - che scorre nel testo, ma come posso applicarlo ai segnaposti temporanei in un'area di immissione moduli?

HTML

<div id="content-1">Sample text 1</div> 
<div id="content-2">Sample text 2</div> 
<div id="content-3">Sample text 3</div> 
<div id="content-4">Sample text 4</div> 
<div id="content-5">Sample text 5</div> 
<div id="content-6">Sample text 6</div> 
<div id="content-7">Sample text 7</div> 

JQuery

var divs = $('div[id^="content-"]').hide(), 
    i = 0; 

(function cycle() { 

    divs.eq(i).fadeIn(400) 
       .delay(1000) 
       .fadeOut(400, cycle); 

    i = ++i % divs.length; 

})(); 

È possibile modificare quanto sopra da div all'ingresso, ma quel ciclo volontà l'intera casella di input dentro e fuori, e voglio solo il testo segnaposto dissolvenza in entrata/uscita.

EDIT 1:

Ad esempio:

<input type="text" name="whatever" type="text" placeholder="Alice"> 
<input type="text" name="whatever" type="text" placeholder="Bob"> 
<input type="text" name="whatever" type="text" placeholder="Charles"> 
+1

Non è molto chiaro cosa stai cercando di fare – Itay

+0

Vedere la nuova modifica sopra. – alxlvt

+0

E li vuoi tutti sullo stesso input? – Itay

risposta

4

Non si può animare il testo segnaposto, ma è possibile creare una funzione che modifica periodicamente l'attributo:

Demo fiddle

var placeholders = ['Alice','Bob','Charles']; 

(function cycle() { 
    var placeholder = placeholders.shift(); 
    $('input').attr('placeholder',placeholder); 
    placeholders.push(placeholder); 
    setTimeout(cycle,1000); 
})(); 

Questo è fondamentalmente ciò che si vuole meno il fadeIn/fadeOut

+0

puoi dirmi perché questa soluzione non funziona http://jsfiddle.net/L24vR/ –

+0

@FaceOfJock 'delay()' funziona solo con la coda di animazione per impostazione predefinita, anche se hai intenzione di usare il ritardo devo chiamarlo su un elemento, non è una funzione globale –

+0

ho provato a usare anche setTimeout, ma non funziona: http://jsfiddle.net/kADwN/ Qualche suggerimento? –

0

Il testo posto titolare bisogno di un contenitore. Questo potrebbe essere qualsiasi cosa. Semplice come un tag span o label sopra o sotto i campi di input.

+0

Non so se funzionerà; vedi nuova modifica. Sto cercando di scorrere il testo segnaposto del tag di input. – alxlvt

Problemi correlati