Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [JQuery] mostra/nascondi

    Ho creato questa funzione in jquery che dovrebbe nascondere tutti i

    figli di <h3>. In realtà funziona correttamente solo con i primi

    nascondendo e non mostrando mai gli eventuali secondi o terzi

    . Dove sbaglio?

    Codice PHP:
    $(document).ready(function(){
      $(
    'h3').click(function() {
        if (!$(
    this).hasClass("actived")) {
          $(
    'h3').removeClass("actived");
          $(
    this).addClass("actived");
          $(
    'h3 ~ p').slideUp(400);
          $(
    this).next().delay(400).slideDown(400);
        }
      });
      $(
    'h3 ~ p').hide().first().show();
      $(
    'h3').first().addClass("actived");
    }); 

  2. #2
    Semplicemente

    $('h3 p') direi

    (semanticamente non credo abbia molto senso inserire dei paragrafi dentro degli hqualcosa)

  3. #3
    No, h3 p non funziona perché naturalmente non inserisco paragrafi dentro i titoli. Vorrei selezionare tutti i paragrafi adiacenti ai relativi titoli.

    <h3>111</h3>


    aaa</p>


    bbb</p>

    <h3>222</h3>


    aaa</p>


    bbb</p>

    <h3>333</h3>


    aaa</p>

    <h3>444</h3>


    aaa</p>


    bbb</p>


    ccc</p>

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Funziona solo il primo

    perché ti sposti di uno $(this).next() se vuoi spostarti di due $(this).next().next() etc...
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    http://api.jquery.com/next-siblings-selector/

    Se ho capito bene così seleziona tutti i successivi del tuo selettore, per cui al primo h3 ti prende tutti i paragrafi dopo (ovvero tutti).

    Non puoi chiudere ogni blocco in un div? così prendi i paragrafi del parent

    codice:
    <div>
    <h3>111</h3>
    
    
    aaa</p>
    
    
    bbb</p>
    </div>
    
    <div>
    <h3>222</h3>
    
    
    aaa</p>
    
    
    bbb</p>
    </div>
    js
    codice:
    $('h3').click(function(){
      $("p", $(this).parent());
    })

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    usa nextAll()


    $(this).nextAll('p').delay(400).slideDown(400);
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Purtroppo non posso racchiudere i p in un div, altrimenti avrei risolto semplicemente.

    Con nextAll mi apre tutti i p, anche mettendo h3 ~ p. Inserendo vari next() funziona, ma non ho controllo sul numero di p (l'utente inserisce autonomamente il testo).
    Inoltre della prima "serie" h3+p+p+p, che dovrebbe essere mostrata all'inizio, si visualizza solo h3+p.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    puoi fare cosi:

    $(this).nextUntil("h3").delay(400).slideDown(400);


  9. #9
    Ecco, così funziona! Mi rimane da risolvere il problema della prima serie h3+p+p... attualmente quando si carica la pagina viene visualizzato solo il primo p, anche se non capisco perché!

    $('h3 ~ p').hide().first().show(); Secondo logica dovrebbe funzionare, o no?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $('h3 ~ p').hide();
    $('h3').first().nextUntil("h3").show();

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.