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

    Onclick disable=true. Ma su un div?

    Ciao a tutti,
    non so come spiegare la cosa ma ci provo.

    Ho lo script che vedete qui sotto che prende dinamicamente i risultati da un db e li propone a video come semplice testo cliccabile e lo lista all'interno di un div.

    Fino qui tutto ok, è quello che mi serve.

    Il problema nasce dopo il primo click.

    L'utente che clicca all'infinito creerà una lista infinita con lo stesso soggetto ed è quello che non dovrebbe accadere.

    Come posso fare per disabilitare la funzione di questo testo dopo il primo click pur continuando a mantenere visibile il testo?

    In pratica lo stesso sistema che si utilizza per disabilitare un bottone dopo il click.

    codice:
    $status[$i] = "<span onclick=\"appendElement(document.getElementById('contenuto'),'div','','$name[$i]');\">$name[$i] &egrave; presente!</span>";

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    fermo restando che forse dovresti usare un elemento <a> piuttosto di uno span:

    <span onclick="funzione(); this.onclick=function() { return false; }">...</span>
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    Ciao fcaldera grazie per la sollecitissima risposta.

    Bah, che dire... Era cosi semplice eppure io andavo a fare le prove con cose complicatissime. Chissà se mi entrerà mai in testa js.

    Sto utilizzando uno span perché lo script originale era preparato cosi e pensavo andasse bene ma seguirò il tuo consiglio.

    Per quanto riguarda lo script invece vorrei chiederti una cosa.

    Nel caso volessi renderlo nuovamente funzionante tramite click ad un altro link, come dovrei impostarlo?

    Grazie ancora.

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    riassegni l'evento onclick su quello specifico <span>

    codice:
    <elementospan>.onclick= function() {
       funzione();
       this.onclick = function() {
            return false;
       }
    }

    se cambi lo span con un link, ricorda di fare un return false altrimenti viene eseguito il link
    Vuoi aiutare la riforestazione responsabile?

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

  5. #5
    Originariamente inviato da fcaldera
    riassegni l'evento onclick su quello specifico <span>

    codice:
    <elementospan>.onclick= function() {
       funzione();
       this.onclick = function() {
            return false;
       }
    }
    Grazie ancora.
    Scusa la niubbaggine ma mi sta sorgendo un dubbio.
    Dato che il risultato è dinamico e quindi gli elementi <span> si moltiplicano per quanti sono i risultati, come faccio a distinguere a quale elemento riassegnare la funzione?
    Devo fare in modo che venga assegnato un id ad ogni elemento oppure quello che mi stai proponendo può essere adattato pari, pari?

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    devi assegnare un id

    se gli elementi possono cambiare di numero (aumentare e diminuire) meglio non affidarsi ad una collection ottenuta con un getElementsByTagName(), potresti incontrare dei problemi con gli indici dell'array

    potrebbe essere più comodo nel tuo caso assegnare un id incrementale e poi riferirsi allo span che vuoi con getElementById()

    ad ogni modo la sceltaè tua, io non conoscendo l'applicazione non posso dirti quale metodo sia meglio nel tuo caso.
    Vuoi aiutare la riforestazione responsabile?

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

  7. #7
    Perfetto. Sei stato preziosissimo.
    Fin'ora tutte le prove che ho fatto, legate ai tuoi consigli, funzionano a dovere.
    Devo solo risolvere quest'ultima cosa.
    Adesso mi metterò a fare i compiti per vedere se riesco ad impostare gli id incrementali ma non voglio infastidirti ancora, hai fatto davvero molto.
    Tenterò di fare da me ma eventualmente verrò a tediarti ancora
    Grazie mille

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.