Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170

    [Jquery] Nascondere elementi lista non ordinata e rimuovere lista

    Buongiorno,
    per nascondere sequenzialmente gli elementi di una lista non ordinata, uso questo script
    codice:
    $('#onlineContainer li').each(function (i) {
        var intervallo=800;
        $(this).delay(i * intervallo).hide("bounce", { direction:'right', times: 2 }, "slow");
    })
    e fino a qui tutto ok, gli elementi - li -, vengono nascosti uno ad uno con un intervallo di 800 millisecondi, ecc.
    Una volta nascosto tutto, però, dovrei rimuovere la lista intera #onlineContainer, per intenderci dovrei inserire
    $('#onlineContainer').remove();

    Il problema è che non so dove inserirlo per rimuovere la lista solo dopo la scomparsa dei suoi elementi.
    Ho provato a mettere la funzione in callback in vari modi ma non va, mi rimuove la lista subito o dopo la scomparsa del primo elemento.
    Aiutooo
    Ultima modifica di Mary Angy; 24-05-2014 a 16:25

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cosi hai provato?
    $(this).delay(i * intervallo).hide("bounce",{ direction:'right', times:2},"slow", function(){
    $('#onlineContainer').remove()
    });
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Si è stata l'ultima prova, ma messa così mi fa scomparire il primo li con l'effetto bounce e poi rimuove #onlineContainer, in pratica non attende che tutti i li siano stati nascosti prima di rimuovere la lista intera.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    $('#onlineContainer li').each(function (i) {
    var intervallo=800;
    $(this).delay(i * intervallo).hide("bounce", { direction:'right', times: 2 }, "slow");
    if(i==0)$('#onlineContainer').remove()
    })
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    mmm no, si nascondono i li ma la lista rimane.
    Lo verifico in quanto a monte delle funzione c'è un if che verifica onlineConteiner

    codice:
    if ($('#onlineContainer').length==0) {
              
                  /*ecc. ecc.*/
        
    } else {
                $('#onlineContainer li').each(function (i) {
                     var intervallo=800;
                   $(this).delay(i * intervallo).hide("bounce", { direction:'right', times: 2 }, "slow");
                   })
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Ho trovato la soluzione

    codice:
    $.when($('#onlineContainer li').each(function (i) {
            var intervallo =800;
              $(this).delay(i * intervallo).hide("bounce", { direction:'right', times: 2 }, "slow")
               })
      ).then(function () {$('#onlineContainer').remove();
                    })

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.