簡體   English   中英

添加cookie以進行拖放

[英]Adding cookies to drag and drop

我正在創建一個拖放插件,我想讓它有點獨特我會添加一個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是檢查cookie是否設置為true; setCookie工作(我檢查過); oj指的是this ,選擇。

問題:我需要能夠獲得cookie的值。 因為,我當前正試圖使值成為被拖動元素的位置,然后檢索它。

正如你在$.setCookie('tposition22' + $(oj).index(), currentPos.top, 365);看到的那樣$.setCookie('tposition22' + $(oj).index(), currentPos.top, 365); currentPos.top在價值點。 獲取拖動元素的Y位置。

主要問題:有沒有辦法檢索cookie的value

當然,您可以檢索cookie的值。 我不喜歡重新發明輪子,因為你已經在jQuery-ville,為什么不使用jQuery cookie插件呢? 我認為甚至還有一個“正式”的。 應該提供對與cookie交互所需的一切的簡單訪問(實際上,只需獲取並設置一個!)。

關於你的具體代碼, o (來自o.cookies )來自哪里,為什么它應該是一個布爾值?

旁注:幾乎所有代碼都可以從正確命名的變量中受益。 讓你的minifier減少到單個字母將使你的代碼更具可讀性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM