Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,082

    [jQuery] Azioni su click con parametri

    Salve a tutti, ho una pagina (generata con php) dove ho una serie di link di questo tipo
    codice:
    <a id="utente1" name="utente1" title="1">Cancella Utente 1</a>
    <a id="utente2" name="utente2" title="2">Cancella Utente 2</a>
    <a id="utente3" name="utente3" title="3">Cancella Utente 3</a>
    ....
    In pratica: il click chiama una pagina (codice già pronto con ajax) passandogli l'id da cancellare.

    Come predispongo il jquery che intercetta il click e soprattutto che prende l'id? (che potrei mettere, ad esempio, nell'attributo title...)
    Guybrush Threepwood

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,774
    In questi casi, io faccio uso dei cosiddetti Data Attributes, ovvero attributi personalizzati dove inserisco le informazioni che voglio associare a un elemento, come può essere l'ID dell'utente nel tuo caso.

    Per esempi, vedi il link alla documentazione.

    Quando intercetti l'evento usando JQuery, semplicemente puoi usare le funzioni preposte della libreria per leggere gli attributi che ti interessano sull'elemento che ha generato l'evento.

    Mi è sempre sembrata una soluzione più "pulita" rispetto al "farcire" gli elementi con ID specifici usando prefissi particolare (che sono poi da interpretare o rimuovere) o classi CSS o altri espedienti ancora peggiori.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,082
    eh dai ci siamo quasi, ma mi funziona solo con il primo link

    codice:
    $('#utente').on('click', function() {
        alert($("#utente").attr("title"));
    });
    
    <a id="utente" name="utente" title="1">Cancella Utente 1</a>
    <a id="utente" name="utente" title="2">Cancella Utente 2</a>
    <a id="utente" name="utente" title="3">Cancella Utente 3</a>
    Ho fatto una cosa simile a questa, ma l'alert lo caccia solo sul primo elemento...

    Dimenticavo: i numeri dell'utente NON sono consecutivi, sono degli id variabili a db
    Guybrush Threepwood

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,052
    Documentati https://api.jquery.com/each/#each-function devi eseguire un ciclo sull’elemento dove si trova il dato (meglio usare una classe, ricordati che gli ID devono essere univoci) visto che generi i link dinamicamente sarebbe più veloce allo stesso modo inserire un click con il dato che devi passare alla funzione
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,774
    Quote Originariamente inviata da Threepwood Visualizza il messaggio
    eh dai ci siamo quasi, ma mi funziona solo con il primo link
    Per forza, hai scritto $('#utente'), ovvero stai agganciando l'evento al link che ha quell'ID, e l'ID è univoco nella pagina.

    Oltre a questo, non capisco perché hai usato l'attributo title al posto di quello che ti ho segnalato io: sarebbe stata la stessa cosa, solo che lo peschi con una funzione diversa e non sei costretto a mostrare l'ID dell'utente quando vai sopra al link con il mouse, roba che viene letta anche da alcuni screen reader.

    Al netto che ciascuno fa come vuole, se si danno suggerimenti e chi chiede aiuto fa di testa sua, tanto vale non sprecare tempo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  6. #6
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,082
    Perdonami, ma con jQuery vado a tastoni, non intenderla come un "faccio quello che voglio"
    Ascolta, nominando i campi come utente1, utente2, etc... la chiamata da codice come la faresti?
    intendo questa

    $('#utente').on('click', function() {
    alert($("#utente").attr("title"));
    });
    Guybrush Threepwood

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,774
    Quote Originariamente inviata da Threepwood Visualizza il messaggio
    Perdonami, ma con jQuery vado a tastoni, non intenderla come un "faccio quello che voglio"
    Anche se vai "a tastoni", la soluzione e i riferimenti te li ho forniti, e puoi sempre studiarla.
    E in caso di ulteriori dubbi, puoi sempre chiedere.

    Quote Originariamente inviata da Threepwood Visualizza il messaggio
    Ascolta, nominando i campi come utente1, utente2, etc... la chiamata da codice come la faresti?
    Non capisco cosa intendi. In ogni caso, non ho voglia di scervellarmi per dirti come fare un accrocchio che è ben lontano da una soluzione efficace dopo aver perso tempo a fornirtela.

    Scusa, ma non mi pare né logico né rispettoso.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

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 © 2020 vBulletin Solutions, Inc. All rights reserved.