Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    [Jquery] Alla pressione di un bottone, cambiarlo e poi ritornare allo stato originale

    Ciao a tutti,

    sto cercando di effettuare una semplice operazione alla preassione di un tasto, ma non riesco a risolvere:

    codice html:
    codice HTML:
    <span id="bottoneCopia" class="label label-success">Copia</span>
    Alla pressione del tasto Copia vorrei che il testo cambiasse immediatamente ad un altro colore(il colore è assegnato alle classi 'label-success' e 'label-warning') e il contenuto del testo cambiasse, fin qui nessun problema:
    codice:
       $("#bottoneCopia").on("click", function () {
            $(this).removeClass("label-success").addClass("label-warning")
                    .text("Copiato in memoria");
        });
    Adesso però vorrei eseguire altri metodi (funzioni) dopo .text("Copiato in memoria") con un ritardo di un secondo e ritornare allo stadio iniziale.
    Ho provato ad aggiungere .delay(1000).text("Fatto");
    il cambio è però immediato, ovvero passa da 'Copia' a 'Fatto' e 'Copiato in memoria' non si vede, come mai?
    Come posso ritardare il resto delle funzioni?

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho risolto così:
    codice:
        $("#bottoneCopia").on("click", function () {
            $(this).stop().removeClass("label-success").addClass("label-warning")
                    .text("Copiato in memoria")
                    .delay(1000).queue(function() { 
            $(this).stop().text("Copia");
            });
        });
    Adesso però vorrei che facesse una transizione tra la classe attuale "label-warning" e "label-success"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ecco la mia soluzione:
    codice:
        $("#bottoneCopia").on("click", function () {
            $(this).stop().removeClass("label-success").addClass("label-warning")
                    .text("Copiato in memoria")
                    .delay(1000).queue(function () {
                $(this).stop()
                        .fadeOut(function () {
                            $(this).removeClass("label-warning").addClass("label-success").fadeIn(100).text("Copia");
                        });
            });
        });
    Se qualcuno conosce un modo migliore, me lo dica, grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.