Эй, ребята,
Я не могу заставить его работать. У меня есть перетаскиваемые черные полосы, которые служат навигацией поверх содержимого.
Я просто хочу, чтобы браузер запомнил положение баров с 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' });
}
});