小兔网

使用鼠标选择单个元素或一组元素。

如需了解更多有关 selectable 交互的细节,请查看 API 文档 可选择小部件(Selectable Widget)

默认功能

在某个 DOM 元素上或者一组元素上启用 selectable 功能。通过鼠标拖拽选择条目。按住 Ctrl 键,选择多个不相邻的条目。

<!doctype html><html lang="en"><head>  <meta charset="utf-8">  <title>jQuery UI 选择(Selectable) - 默认功能</title>  <link rel="stylesheet" href="https://zhishitu.com/">  <script src="/images/2021/06/11/202106110417347546940.js"></script>  <script src="/images/2021/06/11/202106110417347549611.js"></script>  <link rel="stylesheet" href="https://zhishitu.com/">   <style>  #feedback { font-size: 1.4em; }  #selectable .ui-selecting { background: #FECA40; }  #selectable .ui-selected { background: #F39814; color: white; }  #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }  #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }  </style>  <script>  $(function() {    $( "#selectable" ).selectable();  });  </script></head><body> <ol id="selectable">  <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>

显示为网格

让 selectable 条目显示为网格,使用 CSS 使得它们带有相同的尺寸且浮动显示。

<!doctype html><html lang="en"><head>  <meta charset="utf-8">  <title>jQuery UI 选择(Selectable) - 显示为网格</title>  <link rel="stylesheet" href="https://zhishitu.com/">  <script src="/images/2021/06/11/202106110417347546940.js"></script>  <script src="/images/2021/06/11/202106110417347549611.js"></script>  <link rel="stylesheet" href="https://zhishitu.com/">   <style>  #feedback { font-size: 1.4em; }  #selectable .ui-selecting { background: #FECA40; }  #selectable .ui-selected { background: #F39814; color: white; }  #selectable { list-style-type: none; margin: 0; padding: 0; width: 450px; }  #selectable li { margin: 3px; padding: 1px; float: left; width: 100px; height: 80px; font-size: 4em; text-align: center; }  </style>  <script>  $(function() {    $( "#selectable" ).selectable();  });  </script></head><body> <ol id="selectable">  <li class="ui-state-default">1</li>  <li class="ui-state-default">2</li>  <li class="ui-state-default">3</li>  <li class="ui-state-default">4</li>  <li class="ui-state-default">5</li>  <li class="ui-state-default">6</li>  <li class="ui-state-default">7</li>  <li class="ui-state-default">8</li>  <li class="ui-state-default">9</li>  <li class="ui-state-default">10</li>  <li class="ui-state-default">11</li>  <li class="ui-state-default">12</li></ol>  </body></html>

序列化

写一个函数,在 stop 事件发生时触发,来收集被选中条目的索引值。呈现这些值作为反馈,或者以数据字符串形式进行传递。

<!doctype html><html lang="en"><head>  <meta charset="utf-8">  <title>jQuery UI 选择(Selectable) - 序列化</title>  <link rel="stylesheet" href="https://zhishitu.com/">  <script src="/images/2021/06/11/202106110417347546940.js"></script>  <script src="/images/2021/06/11/202106110417347549611.js"></script>  <link rel="stylesheet" href="https://zhishitu.com/">   <style>  #feedback { font-size: 1.4em; }  #selectable .ui-selecting { background: #FECA40; }  #selectable .ui-selected { background: #F39814; color: white; }  #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }  #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }  </style>  <script>  $(function() {    $( "#selectable" ).selectable({      stop: function() {        var result = $( "#select-result" ).empty();        $( ".ui-selected", this ).each(function() {          var index = $( "#selectable li" ).index( this );          result.append( " #" + ( index + 1 ) );        });      }    });  });  </script></head><body> <p id="feedback"><span>您已经选择了:</span> <span id="select-result">无</span>。</p> <ol id="selectable">  <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></ol>  </body></html>