可排序的jQuery移动列表;与本地存储

时间:2013-12-22 14:53:34

标签: javascript jquery-mobile local-storage jquery-mobile-listview

我有一个jQuery移动列表,它具有滑动删除功能并在本地存储首选项。我正在尝试实现一个功能来重新排序列表项并将其存储在同一个数组中,请帮忙! 这是我的小提琴:http://jsfiddle.net/f18nfz/nUSUB/2/

所以函数可以是(http://jsfiddle.net/maziar/P2XDc/):

function moveUp(item) {
    var prev = item.prev();
    if (prev.length == 0)
        return;
    prev.css('z-index', 999).css('position','relative').animate({ top: item.height() }, 250);
    item.css('z-index', 1000).css('position', 'relative').animate({ top: '-' + prev.height() }, 300, function () {
        prev.css('z-index', '').css('top', '').css('position', '');
        item.css('z-index', '').css('top', '').css('position', '');
        item.insertBefore(prev);
    });
}
function moveDown(item) {
    var next = item.next();
    if (next.length == 0)
        return;
    next.css('z-index', 999).css('position', 'relative').animate({ top: '-' + item.height() }, 250);
    item.css('z-index', 1000).css('position', 'relative').animate({ top: next.height() }, 300, function () {
        next.css('z-index', '').css('top', '').css('position', '');
        item.css('z-index', '').css('top', '').css('position', '');
        item.insertAfter(next);
    });
}

$(".FieldContainer").sortable({ items: ".OrderingField", distance: 10 });
$('button').click(function() { 
    var btn = $(this);
    var val = btn.val();
    if (val == 'up')
        moveUp(btn.parents('.OrderingField'));
    else
        moveDown(btn.parents('.OrderingField'));
});

1 个答案:

答案 0 :(得分:0)

以下是使用jQuery Mobile的可排序拖放列表的一个很好的示例:http://jsfiddle.net/sidonaldson/pes2d/

<div data-role="page" id="page1">
    <div data-role="content">
        <ul data-role="listview" data-divider-theme="b" data-inset="true">
            <li data-role="list-divider" role="heading">Re-order</li>
            <li data-theme="c">1</li>
            <li data-theme="c">2</li>
            <li data-theme="c">3</li>
            <li data-theme="c">4</li>
            <li data-theme="c">5</li>
            <li data-theme="c">6</li>
            <li data-theme="c">7</li>
        </ul>
        <a data-role="button">Submit</a>
    </div>
</div>

$(document).ready(function(e) {
    $('li').removeClass('ui-corner-bottom');
    $('ul')
        .addClass('ui-corner-top')
        .removeClass('ui-corner-all')
        .sortable({
            'containment': 'parent',
            'opacity': 0.6,
            update: function(event, ui) {
                alert("dropped");
            }
        });
});