📜  jQuery UI 可排序创建事件(1)

📅  最后修改于: 2023-12-03 14:43:12.749000             🧑  作者: Mango

jQuery UI 可排序创建事件

jQuery UI提供了一个可排序(sortable)的交互组件,可以让用户通过拖动交换两个或多个DOM元素的位置。可排序组件还可以通过在DOM元素上监听事件来实现自定义交互和行为。

在jQuery UI中使用可排序组件很简单,只需要先引入jQuery UI库,在DOM元素上应用sortable()方法即可。可选的选项可以控制排序的方式、排序时响应的CSS样式、拖动时的响应行为等等。

下面是一个例子,创建了一个可以拖动排序的图片列表,当拖动图片时会触发update事件,并输出拖动前后的位置信息。具体代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>Sortable Events</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="//code.jquery.com/jquery-3.3.1.js"></script>
  <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <style>
    #sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
    #sortable li { margin: 0 3px 3px 3px; padding: 0.4em; border-radius: 5px; font-size: 1.4em; height: 1.2em; }
    .ui-state-highlight { height: 1.5em; line-height: 1.2em; margin-bottom: 8px; }
  </style>
  <script>
    $( function() {
        $( "#sortable" ).sortable({
            update: function( event, ui ) {
                var oldIndex = ui.item.data("ui-sortable-start-index");
                var newIndex = ui.item.index();
                console.log("Moved from " + oldIndex + " to " + newIndex);
            }
        });
        $( "#sortable" ).disableSelection();
    });
  </script>
</head>
<body>
  <ul id="sortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
  </ul>
</body>
</html>

代码解释:

  1. 首先引入jQuery和jQuery UI库。

  2. 使用CSS样式为列表项设置样式,包括边距、内填充、圆角、字体大小等等。

  3. 创建一个无序列表,并使用id="sortable"标识。

  4. 在JavaScript中使用jQuery选择器选取id为sortable的元素,并应用sortable方法。

  5. 在可排序组件上监听update事件,该事件在拖动结束时触发。

  6. 在update事件处理程序中,获取拖动前后的位置信息,并输出到控制台中。

  7. 最后禁止选择列表项。

通过使用可排序组件和监听事件,我们可以方便地实现可排序的DOM元素,并控制排序时的交互和行为。