jQuery UI Selectable
jQuery UI selectable()方法用于单独或成组选择DOM元素。使用此方法,可以通过用鼠标在元素上拖动一个框来选择元素。您也可以使用ctrl按钮选择多个元素。
语法:
您可以以两种形式使用selectable()方法:
$(selector, context).selectable (options) 方法
$(selector, context).selectable ("action", params) 方法
第一个方法
selectable(options)方法指定HTML元素包含可选项。这里的选项?参数是一个对象,它指定选择时涉及的元素的行为。
使用JavaScript对象可以一次使用一个或多个选项。如果有多个选项,则必须使用逗号将它们分开,如下所示:
$(selector, context).selectable({option1: value1, option2: value2..... });
以下是可与该方法一起使用的不同选项的列表:
选项 |
说明 |
appendTo |
此选项指定选择助手(套索)应附加到哪个元素。默认情况下,其值为body。 |
autoRefresh |
如果将此选项设置为true,则在选择操作开始时将计算每个可选项目的位置和大小。默认情况下,其值为true。 |
cancel |
此选项禁止选择是否开始选择元素。默认情况下,其值为输入,textArea,按钮,选择,选项。 |
delay |
此选项定义何时开始选择。它以毫秒为单位设置时间。这可以用来防止不必要的选择。默认情况下,其值为0。 |
disabled |
如果将此选项设置为true,它将禁用选择机制。在机制设置为启用之前,您无法选择元素。能"),默认情况下,其值为false。 |
distance |
此选项是鼠标在考虑正在进行的选择时必须移动的距离(以像素为单位)。例如,这有助于防止简单的点击被解释为组选择。默认情况下,其值为0。 |
filter |
此选项是一个选择器,指示哪些元素可以成为选择的一部分。默认情况下,其值为*。 |
tolerance |
此选项指定用于测试选择助手(套索)是否应选择项目的模式。默认情况下,其值为touch。 |
jQuery UI selectable()示例1
让我们看一个简单的示例,以演示没有参数传递给selectable()方法的selectable功能。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI selectable-1</title>
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<style>
#selectable-1 .ui-selecting { background: #cdc8b1 ; }
#selectable-1 .ui-selected { background: #006400; color: #000000; }
#selectable-1 { list-style-type: none; margin: 0;
padding: 0; width: 20%; }
#selectable-1 li { margin: 3px; padding: 0.4em;
font-size: 16px; height: 18px; }
.ui-widget-content {
background: #00ced1;
border: 1px solid #DDDDDD;
color: #8b0a50;
}
</style>
<script>
$(function() {
$( "#selectable-1").selectable();
});
</script>
</head>
<body>
<ol id="selectable-1">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
</body>
</html>
jQuery UI selectable()示例2
延迟和距离的使用:
以下示例演示了延迟和距离这两个选项。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Selectable</title>
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<style>
#selectable-2 .ui-selecting,#selectable-3 .ui-selecting {
background: #707070 ; }
#selectable-2 .ui-selected,#selectable-3 .ui-selected {
background: #EEEEEE; color: #000000; }
#selectable-2,#selectable-3 { list-style-type: none; margin: 0;
padding: 0; width: 20%; }
#selectable-2 li,#selectable-3 li { margin: 3px; padding: 0.4em;
font-size: 16px; height: 18px; }
.ui-widget-content {
background: #cedc98;
border: 1px solid #DDDDDD;
color: #333333;
}
</style>
<script>
$(function() {
$( "#selectable-2").selectable({
delay : 1000
});
$( "#selectable-3").selectable({
distance : 100
});
});
</script>
</head>
<body>
<h3>Starts after delay of 1000ms</h3>
<ol id="selectable-2">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
</ol>
<h3>Starts after mouse moves distance of 100px</h3>
<ol id="selectable-3">
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
</body>
</html>
第二种方法
$(selector, context).selectable ("action", params)
selectable ("action", params)方法用于对可选元素执行操作,例如阻止可选功能。在这里,"action"在第一个参数中指定为字符串(例如,"disable"以停止选择)。
以下是可与此方法一起使用的不同操作的列表:
动作 |
说明 |
destroy |
此操作将完全destroy元素的功能。元素返回其初始状态。 |
disable |
此操作用于禁用元素的可选功能。此方法不接受任何参数。 |
enable |
此操作启用元素的可选功能。此方法不接受任何参数。 |
option(optionName,value) |
此操作获取当前与指定的optionName关联的值。 |
option() |
此操作将获取一个对象,该对象包含表示当前可选选项哈希的键/值对。 |
option(optionName,value) |
此操作设置与指定的optionName关联的可选选项的值。参数optionName是要设置的选项的名称,value是要为该选项设置的值。 |
option(options) |
此操作为可选项设置一个或多个选项。 options参数是要设置的选项-值对的映射。 |
refresh |
此操作将导致刷新可选元素的大小和位置。通常在禁用autoRefresh选项(设置为false)时使用。此方法不接受任何参数。 |
widget |
此操作返回一个包含selectable元素的jQuery对象。此方法不接受任何参数。 |
jQuery UI selectable()示例3
让我们以一个示例来演示上表中操作的使用。在下面的示例中,我们演示了
disable()和
option(optionName,value)方法的使用。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Selectable</title>
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<style>
#selectable-5 .ui-selecting,#selectable-6 .ui-selecting {
background: #00bfff; }
#selectable-5 .ui-selected,#selectable-6 .ui-selected {
background: #EEEEEE; color: #000000; }
#selectable-5,#selectable-6 {
list-style-type: none; margin: 0; padding: 0; width: 20%; }
#selectable-5 li,#selectable-6 li {
margin: 3px; padding: 0.4em; font-size: 16px; height: 18px; }
.ui-widget-content {
background:#b4eeb4;
border: 1px solid #DDDDDD;
color: #333333;
}
</style>
<script>
$(function() {
$( "#selectable-5").selectable();
$( "#selectable-5").selectable('disable');
$( "#selectable-6").selectable();
$( "#selectable-6").selectable( "option", "distance", 1 );
});
</script>
</head>
<body>
<h3>Disabled using disable() method</h3>
<ol id="selectable-5">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
</ol>
<h3>Select using method option( optionName, value )</h3>
<ol id="selectable-6">
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
</body>
</html>
jQuery UI selectable()示例4
以下示例指定如何使用具有可选功能的事件方法。在此示例中,我们演示具有可选功能的事件
"selected" 。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI selectable-7</title>
<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<style>
#selectable-7 .ui-selecting { background: #707070 ; }
#selectable-7 .ui-selected { background: #006400; color: #000000; }
#selectable-7 { list-style-type: none; margin: 0;
padding: 0; width: 20%; }
#selectable-7 li { margin: 3px; padding: 0.4em;
font-size: 16px; height: 18px; }
.ui-widget-content {
background: #00ffff;
border: 1px solid #DDDDDD;
color: #333333;
}
.resultarea {
background: red;
border-top: 1px solid #000000;
border-bottom: 1px solid #000000;
color: #333333;
font-size:14px;
}
</style>
<script>
$(function() {
$( "#selectable-7").selectable({
selected: function() {
var result = $( "#result").empty();
$( ".ui-selected", this ).each(function() {
var index = $( "#selectable-7 li").index( this );
result.append( " #" + ( index + 1 ) );
});
}
});
});
</script>
</head>
<body>
<h3>Events</h3>
<ol id="selectable-7">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
<span class="resultarea">Selected Items</span>>
<span id=result class="resultarea"></span>
</body>
</html>