Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    ReferenceError: <param> is not defined

    salve,

    ho un problema col passaggio di un parametro da una funzione ad un'altra.

    In una funzione JS invoco un'altra funzione passando 2 parametri: un intero ed una stringa; con l intero nessun problema, ma con la stringa invece mi dà l errore specificato nel titolo del topic, cioè è come se cercasse una variabile con quel nome, invece di una vera e propria stringa.

    Sapreste dirmi come risolvere?
    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Senza codice o link alla pagina pubblica ritengo improbabile che si possano fare supposizioni, proprio per "buttare" una risposta prova a backsleh(are) \< \>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Allora,
    come dicevo ieri, ho due funzioni javascript che fanno uso anche di jQuery.

    codice:
    function func1(paramInt, paramString)
    {
    $("#divTest").append('<div class="subDiv"><div onclick="func2('+paramInt+', '+paramString+');"></div></div>');
    }
    e
    codice:
    function func2(paramInt2, paramString2)
    {
    $.get('localhost://prove', {paramInt2:paramInt2, paramString2:paramString2}, function(data)
    {
        // codice vario
    });
    }
    Ecco, il problema è che se premo su una delle div generate mi dà questo errore:
    ReferenceError: paramString2 is not defined

    func2(2, mario);
    spulciando con fireBug ho visto che la stringa mario non viene interepretata come una stringa (cioè 'mario') ma viene stampata nuda e cruda così com'è manco fosse un parametro.
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Perché non la passi come stringa
    function func1(paramInt, paramString)
    {
    $("#divTest").append('<div class="subDiv"><div onclick="func2('+paramInt+', \ ''+paramString+'\ ');"></div></div>'); //senza spazio tra / e apice ' serve solo per il forum che altrimenti toglierebbe la /
    }
    inoltre un po di fantasia avere valore e parametro con lo stesso nome paramInt2aramInt2 potrebbe confondere il browser o usi gli apici 'paramInt2'aramInt2 oppure cambia nome ad uno dei due
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    come dice cavicchiandrea il problema è che devi fare in modo che mario venga virgolettato visto che sei tu che stai costruendo la stringa con tanto di javascript dentro.

    guarda, giusto nel post sotto ho scritto che non è proprio conveniente scrivere javascript in quel modo. Nel tuo caso l'evento click lo puoi gestire tranquillamente con jquery dopo aver creato il div.


    codice:
    $('<div class="subDiv"><div></div></div>').appendTo("#divTest");
    $('#divTest > .subDiv > div').click(function() {
      func2(paramInt, paramStr);
    });

  6. #6
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Grazie Andrea!
    L'idea del backslash funziona perfettamente
    "To iterate is human, to recurse, divine." (R.(Heller))

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