jQuery 禁用鼠标排序
jQuery disable sort by mouse
在jQuery中是否有禁用ui鼠标拖动事件排序的解决方案?我使用函数 sortable 但我创建了短箭头。我想禁用常规鼠标拖动功能。
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'));
});
谢谢。
尼基
由于您正在使用 sortable 但您不想使用它,因为您拥有自定义排序体验,因此您可以设置一个虚拟项目选项以过滤虚拟元素,例如:
items: "foo"
这样元素将是可排序的,但不可排序。
在jQuery中是否有禁用ui鼠标拖动事件排序的解决方案?我使用函数 sortable 但我创建了短箭头。我想禁用常规鼠标拖动功能。
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'));
});
谢谢。
尼基
由于您正在使用 sortable 但您不想使用它,因为您拥有自定义排序体验,因此您可以设置一个虚拟项目选项以过滤虚拟元素,例如:
items: "foo"
这样元素将是可排序的,但不可排序。