如何实现项目清单的橡皮筋选择

时间:2012-12-14 10:27:02

标签: javascript jquery html

我有一个项目列表,我需要通过拖动选择来选择多个项目。我试图实现它。我的代码不能正常工作。

Demo

var dragging=false,rbt,rbl;
$(".itemlist").bind({"mousedown":handleMouseDown,
                     "mousemove":handleMouseMove,
                     "mouseup":handleMouseUp,});



function handleMouseDown(e){
    var rubberband = $("<div/>").addClass("fmgrRubberBand").appendTo(this);
    rubberband.css({
        top : e.pageY,
        left : e.pageX
    });
    rbt = e.pageX;
    rbl = e.pageY;
    dragging=true;
}
function handleMouseMove(e){
    e.preventDefault();
    if (dragging) {
        var t = $(this).children(".fmgrRubberBand").offset().top;
        var l = $(this).children(".fmgrRubberBand").offset().left;
        if (l < e.pageX) {
            $(this).children(".fmgrRubberBand").css({
                "width" : e.pageX - l + "px"
            })
        } else {
            $(this).children(".fmgrRubberBand").css({
                "width" : rbl - e.pageX + "px",
                "left" : e.pageX
            });
        }
        if (t < e.pageY) {
            $(this).children(".fmgrRubberBand").css({
                "height" : e.pageY - t + "px"
            })
        } else {
            $(this).children(".fmgrRubberBand").css({
                "height" : rbt - e.pageY + "px",
                "top" : e.pageY
            })
        }

    }

}
function handleMouseUp(e){
    e.preventDefault();

    dragging = false;

    $(this).children(".fmgrRubberBand").remove();
}

如何使用波段选择选择多个项目?

我的需求是:

  1. 将乐队拖到列表项目上。
  2. 并选择乐队覆盖区域下的项目

1 个答案:

答案 0 :(得分:3)

只需使用jquery ui selectable插件。

这是工作演示。

Demo

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