非常教程

jQuery UI 教程教程

jQuery UI API – 可放置小部件(Droppable Widget)

jQuery UI API – 可放置小部件(Droppable Widget)

jQuery UI API - 可放置小部件(Droppable Widget)

所属类别

交互(Interactions)

用法

描述:为可拖拽小部件创建目标。

版本新增:1.0

依赖:

  • UI 核心(UI Core)
  • 部件库(Widget Factory)
  • 鼠标交互(Mouse Interaction)

注释:jQuery UI 可放置(Droppable)插件让被选元素可放置(意味着它们在拖拽后接受被放置)。您可以逐个指定哪一个 draggable 会接受。

快速导航

选项 方法 事件
accept
activeClass
addClasses
disabled
greedy
hoverClass
scope
tolerance
destroy
disable
enable
option
widget
activate
create
deactivate
drop
out
over

选项 类型 描述 默认值
accept Selector 或 Function() 控制哪个可拖拽(draggable)元素可被 droppable 接受。

支持多个类型:

  • Selector:一个选择器,指定哪个可拖拽(draggable)元素可被 droppable 接受。
  • Function():一个函数,将被页面上每个 draggable 调用(作为第一个参数传递给函数)。如果 draggable 被接受,该函数必须返回 true

代码实例:

初始化带有指定 accept 选项的 droppable:

$( ".selector" ).droppable({ accept: ".special" });
    

在初始化后,获取或设置 accept 选项:

// getter
var accept = $( ".selector" ).droppable( "option", "accept" );
 
// setter
$( ".selector" ).droppable( "option", "accept", ".special" );
    
"*"
activeClass String 如果指定了该选项,当一个可接受的 draggable 被拖拽时,class 将被添加到 droppable。

代码实例:

初始化带有指定 activeClass 选项的 droppable:

$( ".selector" ).droppable({ activeClass: "ui-state-highlight" });
    

在初始化后,获取或设置 activeClass 选项:

// getter
var activeClass = $( ".selector" ).droppable( "option", "activeClass" );
 
// setter
$( ".selector" ).droppable( "option", "activeClass", "ui-state-highlight" );
    
false
addClasses Boolean 如果设置为 false,将防止 ui-droppable class 被添加。这在数百个元素上调用 .droppable() 时有助于性能优化。

代码实例:

初始化带有指定 addClasses 选项的 droppable:

$( ".selector" ).droppable({ addClasses: false });
    

在初始化后,获取或设置 addClasses 选项:

// getter
var addClasses = $( ".selector" ).droppable( "option", "addClasses" );
 
// setter
$( ".selector" ).droppable( "option", "addClasses", false );
    
true
disabled Boolean 如果设置为 true,则禁用该 droppable。

代码实例:

初始化带有指定 disabled 选项的 droppable:

$( ".selector" ).droppable({ disabled: true });
    

在初始化后,获取或设置 disabled 选项:

// getter
var disabled = $( ".selector" ).droppable( "option", "disabled" );
 
// setter
$( ".selector" ).droppable( "option", "disabled", true );
    
false
greedy Boolean 默认情况下,当一个元素被放置在嵌套是 droppable 上时,每个 droppable 将接收该元素。然而,通过设置该选项为 true,任何父元素的 droppable 将无法接收该元素。 drop 事件仍将照常,但会检查 event.target 以便查看哪个 droppable 接收 draggable 元素。

代码实例:

初始化带有指定 greedy 选项的 droppable:

$( ".selector" ).droppable({ greedy: true });
    

在初始化后,获取或设置 greedy 选项:

// getter
var greedy = $( ".selector" ).droppable( "option", "greedy" );
 
// setter
$( ".selector" ).droppable( "option", "greedy", true );
    
false
hoverClass String 如果指定了该选项,当一个可接受 draggable 被覆盖在 droppable 上时,class 将被添加到 droppable。

代码实例:

初始化带有指定 hoverClass 选项的 droppable:

$( ".selector" ).droppable({ hoverClass: "drop-hover" });
    

在初始化后,获取或设置 hoverClass 选项:

// getter
var hoverClass = $( ".selector" ).droppable( "option", "hoverClass" );
 
// setter
$( ".selector" ).droppable( "option", "hoverClass", "drop-hover" );
    
false
scope String 用于组合配套 draggable 和 droppable 项,除了 droppable 的 accept 选项之外。一个与 droppable 带有相同的 scope 值的 draggable 会被该 droppable 接受。

代码实例:

初始化带有指定 scope 选项的 droppable:

$( ".selector" ).droppable({ scope: "tasks" });
    

在初始化后,获取或设置 scope 选项:

// getter
var scope = $( ".selector" ).droppable( "option", "scope" );
 
// setter
$( ".selector" ).droppable( "option", "scope", "tasks" );
    
"default"
tolerance String 指定用于测试一个 draggable 是否覆盖在一个 droppable 上的模式。可能的值:
  • "fit":draggable 完全重叠在 droppable 上。
  • "intersect":draggable 重叠在 droppable 上,两个方向上至少 50%。
  • "pointer":鼠标指针重叠在 droppable 上。
  • "touch":draggable 重叠在 droppable 上,任何数量皆可。

代码实例:

初始化带有指定 tolerance 选项的 droppable:

$( ".selector" ).droppable({ tolerance: "fit" });
    

在初始化后,获取或设置 tolerance 选项:

// getter
var tolerance = $( ".selector" ).droppable( "option", "tolerance" );
 
// setter
$( ".selector" ).droppable( "option", "tolerance", "fit" );
    
"intersect"

方法 返回 描述
destroy() jQuery (plugin only) 完全移除 droppable 功能。这会把元素返回到它的预初始化状态。
  • 该方法不接受任何参数。

代码实例:

调用 destroy 方法:

$( ".selector" ).droppable( "destroy" );
    
disable() jQuery (plugin only) 禁用 droppable。
  • 该方法不接受任何参数。

代码实例:

调用 disable 方法:

$( ".selector" ).droppable( "disable" );
    
enable() jQuery (plugin only) 启用 droppable。
  • 该方法不接受任何参数。

代码实例:

调用 enable 方法:

$( ".selector" ).droppable( "enable" );
    
option( optionName ) Object 获取当前与指定的 optionName 关联的值。
  • optionName
    类型:String
    描述:要获取的选项的名称。

代码实例:

调用该方法:

var isDisabled = $( ".selector" ).droppable( "option", "disabled" );
    
option() PlainObject 获取一个包含键/值对的对象,键/值对表示当前 droppable 选项哈希。
  • 该方法不接受任何参数。

代码实例:

调用该方法:

var options = $( ".selector" ).droppable( "option" );
    
option( optionName, value ) jQuery (plugin only) 设置与指定的 optionName 关联的 droppable 选项的值。
  • optionName
    类型:String
    描述:要设置的选项的名称。
  • value
    类型:Object
    描述:要为选项设置的值。

代码实例:

调用该方法:

$( ".selector" ).droppable( "option", "disabled", true );
    
option( options ) jQuery (plugin only) 为 droppable 设置一个或多个选项。
  • options
    类型:Object
    描述:要设置的 option-value 对。

代码实例:

调用该方法:

$( ".selector" ).droppable( "option", { disabled: true } );
    
widget() jQuery 返回一个包含 droppable 元素的 jQuery 对象。
  • 该方法不接受任何参数。

代码实例:

调用 widget 方法:

var widget = $( ".selector" ).droppable( "widget" );
    

事件 类型 描述
activate( event, ui ) dropactivate 当一个可接受的 draggable 开始拖拽时触发。如果您想让 droppable 被放置时"点亮",该选项就可以派上用场。
  • event
    类型:Event
  • ui
    类型:Object
    • draggable
      类型:jQuery
      描述:jQuery 对象,表示 draggable 元素。
    • helper
      类型:jQuery
      描述:jQuery 对象,表示被拖拽的助手(helper)。
    • position
      类型:Object
      描述:draggable 助手(helper)的当前 CSS 位置,比如 { top, left } 对象。
    • offset
      类型:Object
      描述:draggable 助手(helper)的当前偏移位置,比如 { top, left } 对象。

代码实例:

初始化带有指定 activate 回调的 droppable:

$( ".selector" ).droppable({
  activate: function( event, ui ) {}
});
    

绑定一个事件监听器到 dropactivate 事件:

$( ".selector" ).on( "dropactivate", function( event, ui ) {} );
    
create( event, ui ) dropcreate 当 droppable 被创建时触发。
  • event
    类型:Event
  • ui
    类型:Object

注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。

代码实例:

初始化带有指定 create 回调的 droppable:

$( ".selector" ).droppable({
  create: function( event, ui ) {}
});
    

绑定一个事件监听器到 dropcreate 事件:

$( ".selector" ).on( "dropcreate", function( event, ui ) {} );
    
deactivate( event, ui ) dropdeactivate 当一个可接受的 draggable 停止拖拽时触发。
  • event
    类型:Event
  • ui
    类型:Object
    • draggable
      类型:jQuery
      描述:jQuery 对象,表示 draggable 元素。
    • helper
      类型:jQuery
      描述:jQuery 对象,表示被拖拽的助手(helper)。
    • position
      类型:Object
      描述:draggable 助手(helper)的当前 CSS 位置,比如 { top, left } 对象。
    • offset
      类型:Object
      描述:draggable 助手(helper)的当前偏移位置,比如 { top, left } 对象。

代码实例:

初始化带有指定 deactivate 回调的 droppable:

$( ".selector" ).droppable({
  deactivate: function( event, ui ) {}
});
    

绑定一个事件监听器到 dropdeactivate 事件:

$( ".selector" ).on( "dropdeactivate", function( event, ui ) {} );
    
drop( event, ui ) drop 当一个可接受的 draggable 被放置在 droppable(基于 tolerance 选项)上时触发。
  • event
    类型:Event
  • ui
    类型:Object
    • draggable
      类型:jQuery
      描述:jQuery 对象,表示 draggable 元素。
    • helper
      类型:jQuery
      描述:jQuery 对象,表示被拖拽的助手(helper)。
    • position
      类型:Object
      描述:draggable 助手(helper)的当前 CSS 位置,比如 { top, left } 对象。
    • offset
      类型:Object
      描述:draggable 助手(helper)的当前偏移位置,比如 { top, left } 对象。

代码实例:

初始化带有指定 drop 回调的 droppable:

$( ".selector" ).droppable({
  drop: function( event, ui ) {}
});
    

绑定一个事件监听器到 drop 事件:

$( ".selector" ).on( "drop", function( event, ui ) {} );
    
out( event, ui ) dropout 当 droppable 被拖拽出 droppable(基于 tolerance 选项)时触发。
  • event
    类型:Event
  • ui
    类型:Object

注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。

代码实例:

初始化带有指定 out 回调的 droppable:

$( ".selector" ).droppable({
  out: function( event, ui ) {}
});
    

绑定一个事件监听器到 dropout 事件:

$( ".selector" ).on( "dropout", function( event, ui ) {} );
    
over( event, ui ) dropover 当一个可接受的 draggable 被拖拽在 droppable(基于 tolerance 选项)上时触发。
  • event
    类型:Event
  • ui
    类型:Object
    • draggable
      类型:jQuery
      描述:jQuery 对象,表示 draggable 元素。
    • helper
      类型:jQuery
      描述:jQuery 对象,表示被拖拽的助手(helper)。
    • position
      类型:Object
      描述:draggable 助手(helper)的当前 CSS 位置,比如 { top, left } 对象。
    • offset
      类型:Object
      描述:draggable 助手(helper)的当前偏移位置,比如 { top, left } 对象。

代码实例:

初始化带有指定 over 回调的 droppable:

$( ".selector" ).droppable({
  over: function( event, ui ) {}
});
    

绑定一个事件监听器到 dropover 事件:

$( ".selector" ).on( "dropover", function( event, ui ) {} );
    

实例

一对 draggable 和 droppable 元素。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>可放置小部件(Droppable Widget)演示</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <style>
  #draggable {
    width: 100px;
    height: 100px;
    background: #ccc;
  }
  #droppable {
    position: absolute;
    left: 250px;
    top: 0;
    width: 125px;
    height: 125px;
    background: #999;
    color: #fff;
    padding: 10px;
  }
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<body>
 
<div id="droppable">请放置到这里!</div>
<div id="draggable">请拖拽我!</div>
 
<script>
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
  drop: function() {
    alert( "dropped" );
  }
});
</script>
 
</body>
</html>

jQuery UI API – 可放置小部件(Droppable Widget)
jQuery UI 教程

jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题,可用于创建高度交互的 Web 应用程序。

jQuery UI 教程目录

1.jQuery UI 简介
2.jQuery UI 教程
3.jQuery UI CSS 框架 API
4.jQuery UI 主题
5.jQuery UI 工作原理
6.jQuery UI 如何使用部件库
7.jQuery UI 为什么使用部件库
8.jQuery UI 小部件方法调用
9.jQuery UI 通过部件库扩展小部件
10.jQuery UI 部件库
11.jQuery UI 设计主题
12.jQuery UI API 类别 – UI 核心
13.jQuery UI API 类别 – 主题
14.jQuery UI API 类别 – 选择器
15.jQuery UI API 类别 – 方法
16.jQuery UI API 类别 – 方法重载
17.jQuery UI API 类别 – 交互
18.jQuery UI API 类别 – 特效核心
19.jQuery UI API 类别 – 特效
20.jQuery UI API 文档
21.jQuery UI API – 颜色动画(Color Animation)
22.jQuery UI API – 剪辑特效(Clip Effect)
23.jQuery UI API – 反弹特效(Bounce Effect)
24.jQuery UI API – 百叶窗特效(Blind Effect)
25.jQuery UI API – .addClass()
26.jQuery UI 实例
27.jQuery UI API 类别 – 小部件
28.jQuery UI API 类别 – 实用工具
29.jQuery UI API – 跳动特效(Pulsate Effect)
30.jQuery UI API – 膨胀特效(Puff Effect)
31.jQuery UI API – 突出特效(Highlight Effect)
32.jQuery UI API – .hide()
33.jQuery UI API – 折叠特效(Fold Effect)
34.jQuery UI API – 淡入淡出特效(Fade Effect)
35.jQuery UI API – 爆炸特效(Explode Effect)
36.jQuery UI API – .effect()
37.jQuery UI API – Easings
38.jQuery UI API – 降落特效(Drop Effect)
39.jQuery UI API – 转移特效(Transfer Effect)
40.jQuery UI API – .toggleClass()
41.jQuery UI API – .toggle()
42.jQuery UI API – .switchClass()
43.jQuery UI API – 滑动特效(Slide Effect)
44.jQuery UI API – 尺寸特效(Size Effect)
45.jQuery UI API – .show()
46.jQuery UI API – 震动特效(Shake Effect)
47.jQuery UI API – 缩放特效(Scale Effect)
48.jQuery UI API – .removeClass()
49.jQuery UI API – 可放置小部件(Droppable Widget)
50.jQuery UI API – 可拖拽小部件(Draggable Widget)
51.jQuery UI API – .enableSelection()
52.jQuery UI API – .disableSelection()
53.jQuery UI API – .position()
54.jQuery UI API – .focus()
55.jQuery UI API – 可排序小部件(Sortable Widget)
56.jQuery UI API – 可选择小部件(Selectable Widget)
57.jQuery UI API – 可调整尺寸小部件(Resizable Widget)
58.jQuery UI API – 鼠标交互(Mouse Interaction)
59.jQuery UI API – 堆叠元素(Stacking Elements)
60.jQuery UI API – 图标(Icons)
61.jQuery UI API – CSS 框架(CSS Framework)
62.jQuery UI API – :tabbable Selector
63.jQuery UI API – :focusable Selector
64.jQuery UI API – :data() Selector
65.jQuery UI API – .zIndex()
66.jQuery UI API – .uniqueId()
67.jQuery UI API – .scrollParent()
68.jQuery UI API – .removeUniqueId()
69.jQuery UI API – 插件桥(Widget Plugin Bridge)
70.jQuery UI API – 部件库(Widget Factory)
71.jQuery UI API – jQuery.ui.keyCode
72.jQuery UI API – 滑块部件(Slider Widget)
73.jQuery UI API – 进度条部件(Progressbar Widget)
74.jQuery UI API – 菜单部件(Menu Widget)
75.jQuery UI API – 对话框部件(Dialog Widget)
76.jQuery UI API – 日期选择器部件(Datepicker Widget)
77.jQuery UI API – 按钮部件(Button Widget)
78.jQuery UI API – 自动完成部件(Autocomplete Widget)
79.jQuery UI API – 折叠面板部件(Accordion Widget)
80.jQuery UI API – 工具提示框部件(Tooltip Widget)
81.jQuery UI API – 标签页部件(Tabs Widget)
82.jQuery UI API – 旋转器部件(Spinner Widget)
83.jQuery UI 实例 – 缩放(Resizable)
84.jQuery UI 实例 – 放置(Droppable)
85.jQuery UI 实例 – 拖动(Draggable)
86.jQuery UI 实例 – 滑块(Slider)
87.jQuery UI 实例 – 进度条(Progressbar)
88.jQuery UI 实例 – 菜单(Menu)
89.jQuery UI 实例 – 对话框(Dialog)
90.jQuery UI 实例 – 日期选择器(Datepicker)
91.jQuery UI 实例 – 按钮(Button)
92.jQuery UI 实例 – 自动完成(Autocomplete)
93.jQuery UI 实例 – 折叠面板(Accordion)
94.jQuery UI 实例 – 排序(Sortable)
95.jQuery UI 实例 – 选择(Selectable)
96.jQuery UI 实例 – 切换 Class(Toggle Class)
97.jQuery UI 实例 – 移除 Class(Remove Class)
98.jQuery UI 实例 – 添加 Class(Add Class)
99.jQuery UI 实例 – 切换(Toggle)
100.jQuery UI 实例 – 隐藏(Hide)