4

在 jquery ui selectable 小部件中,我注意到您可以通过按住 ctrl (或通过拖动框)选择多个项目,但是如何禁用多选。我只想一次只能选择 1 个。

谢谢。

4

3 回答 3

7

这是一个相当粗略的实现:http: //jsfiddle.net/rtRjK/

基本上,当一个元素被选中时,首先取消选中它所有被选中的兄弟元素——这会处理 ctrl-clicks。接下来,遍历正在选择和取消选择它们的兄弟姐妹 - 这处理拖动。因此,拖动总是采用具有最大 y 坐标的元素。

您还可以滚动您自己的可选小部件。我从以下位置删除了 ctrl 键引用和_mouseDrag函数:http $.ui.selectable: //jsfiddle.net/zFFXc/

于 2012-10-26T19:05:33.960 回答
0
$("#myList li").click(function() {
  $(this).addClass("selected").siblings().removeClass("selected");
});
于 2012-11-04T10:58:27.843 回答
0

可选, 单选, 带键盘

//after load
$(function() {

    // make <ol id=lista> selectable (jquery UI)
    $("#lista").selectable();
    $("#lista").children(":first-child").addClass("selected"); //select first

    $(document).keydown(function(ev) { //con keyboard

        var actual = $(".selected");
        switch (ev.keyCode) {

            case 13: // User pressed "enter" key
                actual.dblclick();
                ev.preventDefault();
                break;

            case 38: // User pressed "up" arrow
                actual.prev().click();
                ev.preventDefault();
                break;

            case 40: // User pressed "down" arrow
                actual.next().click();
                ev.preventDefault();
                break;
        }
    }); //end keydown

    //single select
    $("#lista li").click(function() {
        $(this).addClass("selected").siblings().removeClass("selected");
    });

}); // end $(fn...
于 2013-06-24T06:01:33.560 回答