Newsgroup: it.comp.lang.javascript
Titolo: devo passare via jquery un'oggetto a javascript

ciao devo passare via jquery un'oggetto a javascript il codice è questo
 
---------------------------
alert($('#flipset').attr('data-settings'));
    Lightbox.defaults =$('#flipset').attr('data-settings');
    //Lightbox.defaults = eval ("{" + $('#flipset').attr('data-settings') + "}"); //questa riga da errore
 
//con questa funziona 
ma dovrei passare l'oggetto tramite $('#flipset').attr('data-settings')
 
  Lightbox.defaults = {
    albumLabel: 'Image %1 of %2',
    alwaysShowNavOnTouchDevices: false,
    fadeDuration: 500,
    fitImagesInViewport: true,
    // maxWidth: 800,
    // maxHeight: 600,
    positionFromTop: 50,
    resizeDuration: 700,
    showImageNumberLabel: true,
    wrapAround: false,
  };
---------------------------
 
se faccio l'alert i dati da passare ce li ho infatti mi da
 
albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 500,
fitImagesInViewport: true,
// maxWidth: 800,
// maxHeight: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false
 
come faccio a correggere questa riga, mi date un'aiuto?
 
Lightbox.defaults = eval ("{" + $('#flipset').attr('data-settings') + "}"); //questa riga da errore

 come faccio a correggere questa riga, mi date un'aiuto?
 
Quindi, se ho capito bene, hai una stringa e la vuoi trasformare in un 
oggetto.
 
O fai il parsing a mano o costringi l'utente a inserire un JSON valido 
(che è la cosa più semplice), oppure cambi l'interfaccia ed eviti di 
fargli copia-incollare dei parametri, ma gli presenti un selettore per 
ogni valore.
 
Bye.

Grazie della risposta ho provato a convertire la stringa in un oggetto json ma mi da errore questo è il codice
 
---------------
 alert($('#flipset').attr('data-settings'));
    Lightbox.defaults =$('#flipset').attr('data-settings');
 
    var str = "{ "+ $('#flipset').attr('data-settings')+" }";
    var obj = JSON.stringify(eval("(" + str + ")"));
    //var obj = JSON.parse(str);
    Lightbox.defaults = obj;
--------------
 
se tolgo questo codice  lascio questo funziona
Lightbox.defaults = {
    albumLabel: 'Image %1 of %2',
    alwaysShowNavOnTouchDevices: false,
    fadeDuration: 500,
    fitImagesInViewport: true,
    // maxWidth: 800,
    // maxHeight: 600,
    positionFromTop: 50,
    resizeDuration: 700,
    showImageNumberLabel: true,
    wrapAround: false
 
  };
questo è invece l'html attraverso cui ho necessità di passare l'oggetto
 
------------------
<div id='flipset' data-settings="    
 
    albumLabel: 'Image %1 of %2',
    alwaysShowNavOnTouchDevices: false,
    fadeDuration: 500,
    fitImagesInViewport: true,
    positionFromTop: 50,
    resizeDuration: 700,
    showImageNumberLabel: true,
    wrapAround: false">
    </div>
------------------
 
come faccio a correggerlo in modo che  
Lightbox.defaults = obj; 
funzioni?? grazie dell'aiuto


 questo è invece l'html attraverso cui ho necessità di passare l'oggetto
 
Chi genera questo HTML? Probabilmente è più semplice far generare il 
codice corretto all'origine che cercare di metterci una pezza dopo.
 
Bye.

si grazie mille, con parse senza eval e correggendo gli apici nel json che non era corretto ha funzionato finalmente ciao
