添加cookie以拖放

Adding cookies to drag and drop

本文关键字:拖放 cookie 添加      更新时间:2023-09-26

我正在创建一个拖放插件,我想让它有点独特,我将添加一个cookie功能来保存拖动元素的位置。

我目前使用以下代码获取和设置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检查cookies是否设置为true;setCookie工作(我检查过);oj是指选择器this

问题:我需要能够获得cookie的值。因为,我目前试图使值的位置拖动的元素,然后检索它。

$.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);中可以看到,currentPos.top位于值点。获取被拖动元素的Y轴位置。

主要问题:是否有一种方法来检索cookie的value ?

当然可以检索cookie的值。我不喜欢重复发明轮子,既然你已经在jQuery-ville中,为什么不使用jQuery cookie插件呢?我想甚至还有一个"官方"的说法。应该提供与cookie交互所需的所有内容的简单访问(实际上,只是获取和设置一个!)。

关于你的具体代码,o(来自o.cookies)来自哪里,为什么它预计是一个布尔值?

旁注:几乎所有的代码都可以从正确命名的变量中受益。

将您的minifier缩减为单个字母将使您的代码更具可读性。