2011-11-26 12 views
9

Sto creando un plug-in di trascinamento della selezione e ho pensato di renderlo un po 'unico aggiungerei una funzione di cookie per salvare la posizione degli elementi trascinati.Aggiunta di cookie per il trascinamento della selezione

Attualmente sto usando il seguente codice per l'ottenere e impostare i cookie:

$.setCookie = function(c_name, value, exdays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
    document.cookie = c_name + "=" + c_value; 
} 
$.getCookie = function(c_name) { 
    var i, x, y, ARRcookies = document.cookie.split(";"); 
    for (i = 0; i < ARRcookies.length; i++) { 
     x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
     y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
     x = x.replace(/^\s+|\s+$/g, ""); 
     if (x == c_name) { 
      return unescape(y); 
     } 
    } 
} 

Questi funzionano bene. Ma quello che non posso andare al lavoro è questo:

if (o.cookies === true) { 
    $(oj).mouseup(function() { 
     var currentPos = $(oj).position(); 
     $.setCookie('tposition22' + $(oj).index(), currentPos.top, 365); 
     $.setCookie('lposition22' + $(oj).index(), currentPos.left, 365); 
     alert('Cookies Set!') 
    }); 
    $(function() { 
     var savedLeftPosition = $.getCookie('lposition22' + $(oj).index()); 
     var savedTopPosition = $.getCookie('tposition22' + $(oj).index()); 
     $(oj).css({ 
      top: savedTopPosition, 
      left: savedLeftPosition 
     }); 
    }); 
} 

Codice Descrizione: o.cookies === true è quello di verificare se i cookie è impostata su true; setCookie funziona (ho controllato); oj si riferisce a this, il selettore.

Problema: Devo essere in grado di ottenere il valore del cookie. Perché, attualmente sto cercando di rendere il valore la posizione dell'elemento trascinato e quindi recuperarlo.

Come si può vedere in $.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);, currentPos.top si trova nel punto del valore. Per ottenere la posizione Y dell'elemento trascinato.

Domanda principale: C'è un modo per recuperare lo value di un cookie?

+0

'oj' è un selettore a destra ?? hai detto che si riferiva a 'true'! confondendo ... – UnLoCo

+1

L'ho modificato. Grazie per averlo indicato. – Shawn31313

risposta

3

Certo, è possibile recuperare il valore di un cookie. Non mi piace reinventare la ruota, però, e visto che sei già in jQuery-ville, perché non usare un plugin per i cookie jQuery? Penso che ci sia anche un "ufficiale". Dovrebbe fornire un accesso semplice a tutto ciò che ti serve per interagire con i cookie (davvero, solo ricevilo e impostane uno!).

Per quanto riguarda il codice specifico, da dove proviene(da o.cookies) e perché è previsto che sia un booleano?

Nota a margine: quasi tutto il codice può trarre vantaggio dalle variabili con nome corretto. Lasciare che il minificatore riduca a una singola lettera manterrà il codice più leggibile.

+0

Is è solo una var. Da per il plugin. Grazie per il consiglio. Ma sai come recuperare il valore di un cookie senza un plugin ufficiale – Shawn31313

+1

In cima alla mia testa, no. Ma guarderei il plugin ufficiale o il campione di qualcun altro, modificarlo se necessario e spostarlo nella mia applicazione. Ci vorrebbe la stessa quantità di spazio o meno rispetto a scrivere il mio da zero. I plug-in o i risultati di una ricerca sul Web non sono diversi da qualcuno che risponde alla tua domanda con un esempio di codice. Stai migrando il codice di qualcun altro e fai buon uso di esso in entrambi i modi. ;-) –

+0

Grazie, ho avuto il codice per funzionare. Ho solo bisogno di usare la funzione $ .getCookie() e ha funzionato bene. Grazie per l'aiuto. – Shawn31313

Problemi correlati