Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Riduzione codice JS

  1. #1

    Riduzione codice JS

    Ho un file .js scritto con questo codice di jquery. In pratica al clic su un div identificato come ok1, ok2, ok3, desidero che appaia il rispettivo div identificato con blocco1, blocco2, blocco3 eccetera. Secondo voi esiste un modo per accorciare il codice senza dover copiare e incollare 100 o 200 volte?

    $(document).ready(function(){
    $("#ok1").click(function(){
    $("#blocco1").toggle("slow");
    });
    });


    $(document).ready(function(){
    $("#ok2").click(function(){
    $("#blocco2").toggle("slow");
    });
    });


    $(document).ready(function(){
    $("#ok3").click(function(){
    $("#blocco3").toggle("slow");
    });
    });


    $(document).ready(function(){
    $("#okn").click(function(){
    $("#bloccon").toggle("slow");
    });
    });


    Grazie!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Puoi aggiungere una classe ai div ok1, etc...?
    Posta l'html (no php) della pagina/documento
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Puoi aggiungere una classe ai div ok1, etc...?
    Posta l'html (no php) della pagina/documento
    Ecco lo stralcio di html con un blocco di contenitori che devo replicare per un bel po' di volte (circa un centinaio); oltre all'id, lo span su cui si clicca ha anche una sua classe, che ho chiamato "m".

    <div class="prtdsc1"><span class="m" id="ok1">LA SOSTANZA ARISTOTELICA</span>
    <div class="finestra1" id="blocco1">
    <span class="prova"><a class="mspan"><i class="icon-doc"></i></a></span>
    <span class="prova"><a class="mspan"><i class="icon-share"></i></a></span>
    <span class="prova"><a class="mspan"><i class="icon-edit"></i>1</a></span>
    <span class="prova"><a class="mspan"><i class="icon-edit"></i>2</a></span>
    <span class="prova"><a class="mspan"><i class="icon-edit"></i>3</a></span>
    </div>
    </div>

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    prova cosi usando jquery 1.7 o superiore
    codice:
    $(document).ready(function(){
      $("body").on("click", ".m", function(){
    var id = $(this).attr("id").substr(2,1);
        $("#blocco"+id).toggle("slow");
      });
     });
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Ok, provo, grazie mille.

  6. #6
    Grandioso, veramente.
    Nel caso volessi fare lo stesso con altri blocchi in un'altra pagina html, come dovrei modificare il codice? Cambiando semplicemente la classe ".m" in un'altra classe in un altro documento html, non funziona. Hai qualche consiglio in questo senso?
    Grazie mille.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    No
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    Quote Originariamente inviata da Hans Castorp Visualizza il messaggio
    Grandioso, veramente.
    Nel caso volessi fare lo stesso con altri blocchi in un'altra pagina html, come dovrei modificare il codice? Cambiando semplicemente la classe ".m" in un'altra classe in un altro documento html, non funziona. Hai qualche consiglio in questo senso?
    Grazie mille.
    In che senso non funziona? Fai un esempio.

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.