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

    Problema con gli eventi

    Salve

    Nello script che sto cercando di approntare non risco ad innestare un evento che chiami una funzione con parametro:
    ...
    link_arg = document.createElement('a');
    link_arg.setAttribute('href', '#');
    link_arg.onclick = argSelezionato;
    ...

    con i frammento di script che ho scritto sopra funziona correttamente, e la funzione "argSelezionato" impostata senza che abbia parametri esegue le sue istruzioni di prova (alert('tutto ok'); ) ma se all'ultima riga ci metto il parametro necessario alla stessa funzione "argSelezionato" riscritta con aggiunta richiesta parametro (argSelezionato(parametro){... ), non funziona.

    io devo fare una cosa del genere:

    ...
    link_arg = document.createElement('a');
    link_arg.setAttribute('href', '#');
    link_arg.onclick = argSelezionato(i) ;
    ...

    con lo scopo di creare un oggetto che abbia come evento la chiamata ad una specifica funzione ed insieme impostato anche il suo parametro:
    se fosse scritto direttamente in html dovrebbe essere così:

    bla bla bla

    Chi mi può aiutare ? sono bloccato

  2. #2
    prova cosi:

    link_arg.onclick = function(i){ argSelezionato(i) };

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Mi sono dimenticato un virgolette su l'ultimo esempio scusate:

    bla bla bla

  4. #4
    Grazie mille, ma funziona solo in parte perché
    il carattere "i" è l'indice di un ciclo for che genera più links e quando l'ho provato per ogni link da come risultato l'ultimo valore di "i":

    function argSelezionato(valore){
    alert(valore);
    }


    link_arg.onclick = function(valore){ argSelezionato(i) };

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    posta la parte di codice in cui fai il ciclo e cerchi di assegnare una funzione all'evento
    Vuoi aiutare la riforestazione responsabile?

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

  6. #6
    Scusami ma non riesco a capire cosa mi volevi dire, ma cosa intendi per "posta"?

    for(i=0;i<x.length;i++){
    nome[i] = x[i].id;
    titolo[i] = x[i].getAttribute('name');
    nuovo = document.createElement('div');
    link_arg = document.createElement('a');
    link_arg.setAttribute('href', '#');
    link_arg.setAttribute('name', i);
    link_arg.onclick = function(valore){ argSelezionato(i) };
    testo = document.createTextNode(titolo[i]);
    link_arg.appendChild(testo);
    nuovo.appendChild(link_arg);
    divTitoli.appendChild(nuovo);
    }

    questo è il ciclo.

  7. #7
    Ok ho risolto il problema rileggendo quel frammento di codice con ciclo for completo che ho scritto subito sopra:
    la soluzione è "this" :

    function argSelezionato(valore){
    alert(valore.name);
    }


    ...
    link_arg.onclick = function(valore){ argSelezionato(this) };
    ...

    Non so perché ma 'this' , per tanto mi sforzi, non mi riescie ad entrare bene in testa;
    comunque funziona.

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.