Tworzę wtyczkę typu "przeciągnij i upuść" i pomyślałem, że będzie ona trochę wyjątkowa, dodam funkcję plików cookie, aby zapisać położenie przeciągniętych elementów.Dodawanie plików cookie do przeciągania i upuszczania
obecnie używam następujący kod do pobierania i ustawiania ciasteczek:
$.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);
}
}
}
Działają one w porządku. Ale czego nie może dostać się do pracy to:
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
});
});
}
Kod Opis: o.cookies === true
jest sprawdzenie, czy pliki cookie są ustawione na true; setCookie działa (sprawdziłem); oj
odnosi się do this
, selektora.
Problem: Muszę być w stanie uzyskać wartość pliku cookie. Ponieważ obecnie próbuję ustawić wartość położenia przeciągniętego elementu, a następnie go pobrać.
Jak widać w $.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);
, currentPos.top
jest w miejscu wartości. Aby uzyskać pozycję Y przeciągniętego elementu.
Główne pytanie: Czy istnieje sposób na odzyskanie pliku cookie z value
?
'oj' jest prawą selektorową ?? powiedziałeś, że odnosi się to do "prawdziwego"! mylące ... – UnLoCo
Edytowałem. Dzięki za wskazanie tego. – Shawn31313