当前位置:首页 > jquery

jquery拖拽事件

2026-03-17 00:21:25jquery

jQuery 拖拽事件实现方法

jQuery 本身不直接提供拖拽功能,但可以通过结合原生 HTML5 的拖拽 API 或使用 jQuery UI 库来实现。以下是两种常见实现方式:

使用 jQuery UI 实现拖拽

jQuery UI 提供了完善的拖拽功能,需要先引入相关库文件:

<!-- 引入 jQuery 和 jQuery UI -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

基础拖拽实现代码:

jquery拖拽事件

$(function() {
  $("#draggable").draggable({
    cursor: "move",
    containment: "parent",
    revert: "invalid"
  });
});

使用 HTML5 原生拖拽 API

如果不希望引入 jQuery UI,可以使用 HTML5 的原生拖拽 API 配合 jQuery:

$(document).ready(function() {
  var $draggable = $('.draggable');

  $draggable.attr('draggable', 'true');

  $draggable.on('dragstart', function(e) {
    e.originalEvent.dataTransfer.setData('text/plain', $(this).attr('id'));
  });

  $('.dropzone').on('dragover', function(e) {
    e.preventDefault();
    $(this).addClass('dragover');
  });

  $('.dropzone').on('dragleave', function() {
    $(this).removeClass('dragover');
  });

  $('.dropzone').on('drop', function(e) {
    e.preventDefault();
    $(this).removeClass('dragover');
    var id = e.originalEvent.dataTransfer.getData('text/plain');
    $('#' + id).appendTo(this);
  });
});

拖拽事件回调函数

jQuery UI 的 draggable 组件提供了多个事件回调:

jquery拖拽事件

$("#element").draggable({
  start: function(event, ui) {
    // 拖拽开始时触发
  },
  drag: function(event, ui) {
    // 拖拽过程中持续触发
  },
  stop: function(event, ui) {
    // 拖拽结束时触发
  }
});

限制拖拽范围

可以通过选项限制拖拽范围:

$("#element").draggable({
  containment: "parent",  // 限制在父元素内
  axis: "x",              // 只能水平拖拽
  grid: [50, 50]          // 按网格拖拽
});

拖拽辅助元素

可以设置拖拽时显示的辅助元素:

$("#element").draggable({
  helper: "clone",        // 克隆元素作为拖拽辅助
  opacity: 0.7            // 设置辅助元素透明度
});

以上方法可以根据具体需求选择使用,jQuery UI 的方案功能更全面,而原生 API 的方案则更轻量。

标签: 拖拽事件
分享给朋友:

相关文章

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

react如何绑定事件

react如何绑定事件

React 事件绑定方法 在 React 中绑定事件有多种方式,以下是常见的几种方法: 使用 onClick 或其他事件属性直接绑定 <button onClick={() => co…

vue实现carousel拖拽

vue实现carousel拖拽

实现拖拽轮播的基本思路 在Vue中实现可拖拽的Carousel组件需要结合触摸事件(touchstart、touchmove、touchend)和鼠标事件(mousedown、mousemove、mo…

jquery 拖拽

jquery 拖拽

jQuery 拖拽实现方法 使用 jQuery 实现拖拽功能可以通过多种方式完成,以下是常见的几种方法: 使用 jQuery UI 的拖拽功能 jQuery UI 提供了 draggable 方法,…

vue 实现事件委托

vue 实现事件委托

Vue 中实现事件委托的方法 事件委托是一种通过将事件监听器绑定到父元素而非子元素的技术,利用事件冒泡机制统一处理子元素的事件。Vue 中可以通过以下方式实现: 1. 使用 v-on 和事件修饰符…

vue 实现拖拽替换

vue 实现拖拽替换

Vue 实现拖拽替换 在 Vue 中实现拖拽替换功能可以通过 HTML5 的拖放 API 结合 Vue 的事件绑定和数据响应式特性来完成。以下是实现拖拽替换的详细方法: 设置拖拽元素 为需要拖拽的元…