jQuery禁用鼠标排序

时间:2015-06-11 10:01:34

标签: jquery sorting jquery-ui-draggable

是否有解决方案在jQuery中通过鼠标拖动事件禁用ui排序?我使用可排序的函数,但我创建了箭头。我想禁用常规鼠标拖动功能。

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);
    });
}
$('.sortable').sortable({ items: '.ordering-field', distance: 10 });
$('i.sorter').click(function() { 
    var btn = $(this);
    var val = $(this).data('direction');
    console.log(val);
    if (val == 'up')
        moveUp(btn.parents('.ordering-field'));
    else
        moveDown(btn.parents('.ordering-field'));
});

感谢。

尼基

1 个答案:

答案 0 :(得分:1)

由于您使用的是可排序但由于您具有自定义排序体验而不想要它,因此可以设置虚拟项目选项以过滤虚拟元素,如:

items: "foo"

通过这种方式,元素将是可排序的,但不可排序。

演示:http://jsfiddle.net/x5o72qnp/