jQuery:draggable bars - 记住cookie的位置?

时间:2011-06-06 11:15:17

标签: jquery jquery-ui cookies drag-and-drop draggable

嘿伙计们, 我似乎无法让它工作。我有可拖动的黑条,作为内容之上的导航。

我只想浏览器记住带有cookie的条形位置。每当用户拖动条形图并点击其他内容(页面刷新)时,条形图应保持在最后位置。

我似乎无法让它发挥作用。此外,我希望当用户第一次访问网站时,可以随意分配条形图。

我已经建立了一个快速的例子。也许你知道我在这里做错了什么:http://jsfiddle.net/RZQ8H/

$("ul.bars li").draggable({
     stop: function(event, ui) {
         var currentPos = $(this).position();
         var currentTop = Math.round(currentPos.top);

         // save cookie when stopped dragging
         $.cookie('position' + $(this).index('li').toString(), currentTop.toString());
     }
});

加载页面时的位置......

// initial position of elements
$("ul.bars li").each(function() {

        // if no cookie is set (first visit to page) all bars should be distributed
        // randomly across the document

        if ( $.cookie('position'+ $(this).index('li').toString()) ) {
            var doc = $(document).height() - 50;

            // random distribution of elements
            $("ul.bars li").each(function() {
                var randPos = Math.random(0)*doc;
                $(this).css('top' , randPos+'px');
            });

        } else { 

            // if a cookie exists (the bars have already been dragged)
            // remember the position

            var savedPos = $.cookie('position' + $(this).index('li').toString());            

            $(this).css({ top: savedPos + 'px' });
        }

});

1 个答案:

答案 0 :(得分:0)

你的病情错了:

if ($.cookie('position'+ $(this).index('li').toString()) ) {

            // random distribution of elements


        } else {

            // if a cookie exists (the bars have already been dragged)
            // remember the position

        }

交换它,这样如果存在cookie,它就不会随机分发它们。

   if (!$.cookie('position'+ $(this).index('li').toString()) ) {

实施例: http://fiddle.jshell.net/RZQ8H/3/show/