jQuery ui 多选拖动

标签 jquery jquery-ui

我需要以下功能

  1. 通过鼠标拖动和 cntrl 键从列表中选择项目,类似于 jquery ui 可选择项。
  2. 一次应该可以拖动多个项目。

我需要类似于操作系统拖放功能的应用程序。

我的问题是,如果我想选择鼠标指针项目正在拖动的多个项目,如何解决它。

我尝试使用该代码,但它在选择多个项目时存在一些缺陷。

$(document).ready(function(){

    var selectedClass = 'ui-state-highlight',
        clickDelay = 600,     // click time (milliseconds)
        lastClick, diffClick; // timestamps

    $("#draggable li")
        // Script to deferentiate a click from a mousedown for drag event
        .bind('mousedown mouseup', function(e){
            if (e.type=="mousedown") {
                lastClick = e.timeStamp; // get mousedown time
            } else {
                diffClick = e.timeStamp - lastClick;
                if ( diffClick < clickDelay ) {
                    // add selected class to group draggable objects
                    $(this).toggleClass(selectedClass);
                }
            }
        })
        .draggable({
            revertDuration: 10, // grouped items animate separately, so leave this number low
            containment: '.demo',
            start: function(e, ui) {
                ui.helper.addClass(selectedClass);
            },
            stop: function(e, ui) {
                // reset group positions
                $('.' + selectedClass).css({ top:0, left:0 });
            },
            drag: function(e, ui) {
                // set selected group position to main dragged object
                // this works because the position is relative to the starting position
                $('.' + selectedClass).css({
                    top : ui.position.top,
                    left: ui.position.left
                });
            }
        });

    $("#droppable, #draggable")
        .sortable()
        .droppable({
            drop: function(e, ui) {
                $('.' + selectedClass)
                 .appendTo($(this))
                 .add(ui.draggable) // ui.draggable is appended by the script, so add it after
                 .removeClass(selectedClass)
                 .css({ top:0, left:0 });
            }
        });

});

最佳答案

这是多选拖动的演示

Demo

只需使用可选插件即可选择多个项目

$(".itemlist").selectable({filter:"li"});

关于jQuery ui 多选拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294237/

相关文章:

jquery - 缩小整个 WordPress 网站

jquery如何找到根据属性名称搜索的元素

javascript - 无需硬刷新的 Gif 重置缓存

javascript - jQuery 自动完成不会显示超过 10 个结果

jquery - 内部带有 jQ​​uery 对话框的表单无法提交

javascript - jQuery UI - 添加标签教程需要解释

javascript - 下载jsp项目

jquery - 如何使用 Jquery 制作数字动画

jquery ui 自动完成

jquery - 拖放多个选择框