Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [jQuery] Rendere il codice più magro

    Salve,
    io ho questo semplice codice:
    codice:
    1. <h3><a id="uno">Uno</a></h3> <ul class="uno">
    2. Prima prova
    [*]<h3><a id="due">Due</a></h3> <ul class="due">[*]Seconda prova[/list][*]<h3><a id="tre">Tre</a></h3> <ul class="tre">[*]Terza prova[/list][/list] <script type="text/javascript"> $('ul,p').hide(); $('#uno').click(function() { $('.uno').toggle(); }); $('#due').click(function() { $('.due').toggle(); }); $('#tre').click(function() { $('.tre').toggle(); }); </script>
    Chiedo qualche consiglio su come diminuire la lunghezza del codice, perché per una cosa così semplice mi sembrano troppi i passaggi.

    Grazie a tutti, buona serata

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi
    codice:
    <script type="text/javascript">     
    $('ul,p').hide();     
    $('#uno, #due, #tre').live('click',function() {         
         $('.uno, .due, .tre').toggle();    
         });     
    </script>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Oppure (a seconda di cosa ti serve)
    codice:
    <script type="text/javascript">     
    $('ul,p').hide();     
    $('ol a').live("click", function() {    
         $("." + $(this).attr("id")).toggle();    
    });​
    </script>
    O, un pochino più leggibile, così
    codice:
    $('ul,p').hide();     
    $('ol a').live("click", function() {    
        var element = $(this).attr("id");   
         $("." + element).toggle();    
    });​

  4. #4
    Grazie mille per avermi risposto,
    a questo ci avevo pensato pure io:

    <script type="text/javascript">
    $('ul,p').hide(); $('#uno, #due, #tre').live('click',function() {
    $('.uno, .due, .tre').toggle(); });
    </script>
    ma vorrei che non si visualizzassero tutti allo stesso momento, ma uno alla volta, per questo avevo usato quella soluzione.

    Per lnessuno ho provato tutte e due i codici postati ma non funzionano, gli "ul" non si nascondono e cliccando non succede nulla.

    Grazie comunque

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    $('ul,p').hide();     
    $('#uno, #due, #tre').live('click',function() {         
         $('.'+$(this).attr("id")).toggle();    
         });
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da blinkshow87
    ... Per lnessuno ho provato tutte e due i codici postati ma non funzionano, gli "ul" non si nascondono e cliccando non succede nulla ...
    Nel codice di Inessuno ci sono due spazi che bloccavano il funzionamento tolti funziona benissimo vedi esempio
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Originariamente inviato da blinkshow87
    ma vorrei che non si visualizzassero tutti allo stesso momento, ma uno alla volta, per questo avevo usato quella soluzione.

    Per lnessuno ho provato tutte e due i codici postati ma non funzionano, gli "ul" non si nascondono e cliccando non succede nulla.
    Non so perchè, ma facendo copia-incolla da jsfiddle si crea qualche strano carattere che genera un errore... togliendo qualche spazio di solito riparte, come diceva cavicchiandrea.

    Per quanto riguarda l'aprire un elemento chiudendo gli altri in modo da averne uno solo aperto, prova così: http://jsfiddle.net/rNsRt/

  8. #8
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    In alternativa, se vuoi una roba un po' più pulita (che non ti crei la necessità di usare id e classi per gli elementi dell'accordion, perchè alla fin fine è pur sempre un accordion), tempo fa buttai giù questo... http://jsfiddle.net/C6qBT/

  9. #9
    Perfetto!!!

    Grazie mille per il vostro aiuto!!

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.