Добавление куки для перетаскивания - PullRequest
9 голосов
/ 26 ноября 2011

Я создаю плагин перетаскивания, и я подумал, чтобы сделать его немного уникальным, я бы добавил функцию куки, чтобы сохранить положение перетаскиваемых элементов.

В настоящее время я использую следующий коддля получения и установки файлов 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);
        }
    }
}

Они отлично работают.Но то, что я не могу заставить работать, это:

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
         });
    });
}

Код Описание: o.cookies === true - проверить, установлено ли для файлов cookie значение true;setCookie работает (я проверял);oj относится к селектору this.

Проблема: мне нужно получить значение cookie.Потому что я сейчас пытаюсь сделать значение позицией перетаскиваемого элемента, а затем извлекаю его.

Как вы можете видеть в $.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);, currentPos.top находится в области значений.Чтобы получить позицию Y перетаскиваемого элемента.

Основной вопрос: Есть ли способ получить value файла cookie?

1 Ответ

3 голосов
/ 26 ноября 2011

Конечно, вы можете получить значение куки. Однако я не люблю изобретать велосипед, и, поскольку вы уже находитесь в jQuery-ville, почему бы не использовать плагин cookie jQuery? Я думаю, что есть даже "официальный". Должен обеспечивать простой доступ ко всему, что вам нужно для взаимодействия с cookie-файлами (на самом деле, просто получить и настроить один!).

Что касается вашего конкретного кода, откуда берется o (из o.cookies) и почему он должен быть логическим?

Дополнительное примечание: почти весь код может получить выгоду от правильно названных переменных. Снижение вашего минификатора до однобуквенного сделает ваш код более читабельным.

...