个性化阅读
专注于IT技术分析

jQuery UI可选

本文概述

jQuery UI selectable()方法用于单独或成组选择DOM元素。使用此方法, 可以通过用鼠标在元素上拖动一个框来选择元素。你也可以使用ctrl按钮选择多个元素。

句法:

你可以通过两种形式使用selectable()方法:

$(selector, context).selectable (options) Method
$(selector, context).selectable ("action", params) Method

第一种方法

selectable(选项)方法指定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()方法传递任何参数的可选择功能。

<!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

使用延迟和距离:

下面的示例演示了两个选项delay和distance的使用。

<!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)

可选(“操作”, 参数)方法用于对可选元素执行操作, 例如阻止可选功能。在此, “操作”在第一个参数中指定为字符串(例如, “禁用”以停止选择)。

以下是可与该方法一起使用的不同操作的列表:

行动 描述
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

以下示例指定如何使用具有可选功能的事件方法。在此示例中, 我们演示了具有可选功能的“已选择”事件。

<!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>

立即测试

赞(0)
未经允许不得转载:srcmini » jQuery UI可选

评论 抢沙发

评论前必须登录!