在 jquery ui selectable 小部件中,我注意到您可以通过按住 ctrl (或通过拖动框)选择多个项目,但是如何禁用多选。我只想一次只能选择 1 个。
谢谢。
在 jquery ui selectable 小部件中,我注意到您可以通过按住 ctrl (或通过拖动框)选择多个项目,但是如何禁用多选。我只想一次只能选择 1 个。
谢谢。
这是一个相当粗略的实现:http: //jsfiddle.net/rtRjK/
基本上,当一个元素被选中时,首先取消选中它所有被选中的兄弟元素——这会处理 ctrl-clicks。接下来,遍历正在选择和取消选择它们的兄弟姐妹 - 这处理拖动。因此,拖动总是采用具有最大 y 坐标的元素。
您还可以滚动您自己的可选小部件。我从以下位置删除了 ctrl 键引用和_mouseDrag
函数:http $.ui.selectable
: //jsfiddle.net/zFFXc/
$("#myList li").click(function() {
$(this).addClass("selected").siblings().removeClass("selected");
});
可选, 单选, 带键盘
//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...