添加cookie以进行拖放

Sha*_*313 9 javascript cookies jquery drag-and-drop position

我正在创建一个拖放插件,我想让它有点独特我会添加一个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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这些工作正常.但我无法工作的是:

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
         });
    });
}
Run Code Online (Sandbox Code Playgroud)

代码说明:o.cookies === true检查cookie是否设置为true; setCookie工作(我检查过); oj指的this是选择器.

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

正如你所看到的$.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);,currentPos.top是在价值点.获取拖动元素的Y位置.

主要问题:有没有办法检索valuecookie?

Gre*_*tit 3

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

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

旁注:几乎所有代码都可以从正确命名的变量中受益。让你的压缩器减少到单个字母将使你的代码更具可读性。