jQueryUI提供 droppable()方法,使任何DOM元素都可以在指定目标(可拖动元素的目标)上删除.
语法
droppable()方法可用于两种形式 :
$(selector, context).droppable (options) 方法
$(selector, context).droppable ("action", params) 方法
$(selector, context).droppable (options)方法
droppable(options)方法声明可以将HTML元素用作可以删除其他元素的元素. options 参数是一个对象,它指定所涉及元素的行为.
语法
$(selector, context).droppable (options);
您可以使用Javascript对象一次提供一个或多个选项.如果要提供多个选项,则使用逗号分隔它们,如下所示;
$(selector, context).droppable({option1: value1, option2: value2..... });
下表列出了可与此方法一起使用的不同选项 :
Sr.No. | 选项&安培;描述 |
---|---|
1 | accept 当您需要控制哪些可拖动元素可以被删除时,使用此选项.默认情况下,其值为 * . 选项 - 接受 当您需要控制哪些可拖动元素时,使用此选项被接受放弃.默认情况下,其值为 * ,表示droppable接受每个项目. 这可以是 :
语法 $( ".selector" ).droppable( { accept: ".special" }); |
2 | activeClass 此选项是一个String,表示在拖动一个接受的元素( options.accept 中指定的元素之一)时要添加到droppable元素的一个或多个CSS类.默认情况下,其值为 false . 选项 - activeClass 此选项是一个String,表示在拖动一个接受的元素( options.accept 中指定的元素之一)时要添加到droppable元素的一个或多个CSS类.默认情况下,其值为 false . 语法 $( ".selector" ).droppable( { activeClass: "ui-state-highlight" }); |
3 | addClasses 当设置为 false 时,此选项将阻止将 ui-droppable 类添加到droppable元素.默认情况下,其值为 true . 选项 - addClasses 设置为 false 时,此选项将阻止将 ui-droppable 类添加到droppable元素中.默认情况下,其值为 true .在数百个元素上调用 .droppable() init时,可能需要将其作为性能优化. 语法 $( ".selector" ).droppable( { addClasses: false }); |
4 | disabled 此选项设置为 true 时会禁用droppable.默认情况下,其值为 false . 选项 - 已停用 此选项设置为 true 时会禁用droppable,即禁用项目在指定元素上的移动以及删除这些元素.默认情况下,其值为 false . 语法 $( ".selector" ).droppable( { disabled: true }); |
5 | greedy 当您需要控制哪些可拖动元素可以放置在嵌套的droppable上时,可以使用此选项.默认情况下,其值为 false .如果此选项设置为 true ,则任何父级droppables都不会收到该元素. 选项 - 贪婪 当您需要控制哪些可拖动元素可以放置在嵌套的droppable上时,可以使用此选项.默认情况下,其值为 false .如果此选项设置为 true ,则任何父级droppables都不会收到该元素. 语法 $( ".selector" ).droppable( { greedy: true }); |
6 | hoverClass 此选项是 String ,表示当接受的元素( options.accept 中指示的元素)进入时,要添加到droppable元素的一个或多个CSS类它.默认情况下,其值为 false . 选项 - hoverClass 此选项是 String ,表示当接受的元素( options.accept 中指示的元素)移动时,要添加到droppable元素的一个或多个CSS类进去.默认情况下,其值为 false . 语法 $( ".selector" ).droppable( { hoverClass: "drop-hover" }); |
7 | scope 此选项用于将可拖动元素的可放置操作仅限制为具有相同 options.scope (在draggable(options)中定义)的项目.默认情况下,其值为"默认". 选项 - 范围 此选项用于将可拖动元素的可放置操作仅限制为具有相同 options.scope (在draggable(options)中定义)的项目.默认情况下,其值为"默认". 语法 $( ".selector" ).droppable( { scope: "tasks" }); |
8 | tolerance 此选项是一个 String ,它指定用于测试拖动器是否悬停在droppable上的模式.默认情况下,其值为"相交". 选项 - 容差 此选项是 String ,它指定可拖动元素应如何覆盖正在接受的放置的droppable元素.默认情况下,其值为"相交".可能的值为 :
语法 $( ".selector" ).droppable( { tolerance: "fit" }); |
以下部分将向您展示一些丢弃功能的工作示例.
默认功能
以下示例演示了一个可放置功能的简单示例,没有参数 droppable()方法.
jQuery UI Droppable - Default functionality Drag me to my target
Drop here
让我们将上述代码保存在HTML文件 dropexample.htm 中,并在支持javascript的标准浏览器中打开它,你应该看到以下输出.现在,您可以使用结果 :
使用addClass,禁用和容差
以下示例演示了三个选项的使用(a)addClass(b)禁用和(c)JqueryUI的drop函数中的容差。
jQuery UI Droppable - Default functionality Drag me to my target
Drop here
I'm disabled, you can't drop here!
Tolerance Touch!
Tolerance Fit!
让我们将上述代码保存在HTML文件dropexample.htm中,并在支持javascript的标准浏览器中打开它,您应该看到以下输出。 现在,你可以玩结果
现在将元素放在"Tolerance Touch"上! 框(只需触摸此框的边缘)并查看目标元素的更改。 现在将元素放在"Tolerance Fit!"上 目标,可拖动元素必须与目标元素完全重叠,即"Tolerance Fit!" 目标。
选择要删除的元素
以下示例演示了在JqueryUI的drag函数中使用选项accept和scope选项。
jQuery UI Droppable - Default functionality People to be dropped to Japan
People to be dropped to India
Japan
India
People who want to learn Java
People who want to learn Spring
Java
Spring
让我们将上述代码保存在HTML文件dropexample.htm中,并在支持javascript的标准浏览器中打开它,您应该看到以下输出。 现在你可以玩输出
在这里你可以看到你可以在"日本"目标和元素"来自印度的人"的目标印度上放弃元素"来自日本的人"。 类似"想要学习Java的人"的范围设置为"Java","想要学习Spring的人"设置为"Spring目标"。
管理外观
以下示例演示了如何使用JqueryUI类的选项activeClass和hoverClass,这有助于我们管理外观。
jQuery UI Droppable - Default functionality Drag me to my target
Drop here
让我们将上面的代码保存在HTML文件dropexample.htm中,并在支持javascript的标准浏览器中打开它,你应该看到以下输出
您可以注意到,在"拖动我的目标"元素的拖动或悬停(在目标上)时,更改目标元素"Drop here"的颜色。
$ (selector, context).droppable ("action", params) 函数
droppable("action",params)方法可以对可放置元素执行操作,例如防止可放置的功能。 该动作在第一个参数中被指定为一个字符串(例如,"禁用"以防止丢弃)。 请查看下表中可以传递的操作。
语法
$(selector, context).droppable("action", params);
下表列出了可以与此方法一起使用的不同操作 :
Sr.No. | Action & Description |
---|---|
1 | destroy 此操作完全破坏元素的可放置功能。 元素返回到pre-init状态。 Action - destroy 此操作完全破坏元素的可放置功能。 元素返回到pre-init状态。 Syntax $( ".selector" ).droppable("destroy"); |
2 | disable 此操作将禁用可放置操作。 元素不再是可放置的元素。 此方法不接受任何参数。 Action - disable 此操作将禁用可放置操作。 元素不再是可放置的元素。 此方法不接受任何参数。 Syntax $( ".selector" ).droppable("disable"); |
3 | enable 此操作将重新激活可放置操作。 元素可以再次接收可放置的元素。 此方法不接受任何参数。 Action - enable 此操作将重新激活可放置操作。 元素可以再次接收可放置的元素。 此方法不接受任何参数。 Syntax $( ".selector" ).droppable("enable"); |
4 | option 此操作获取一个对象,该对象包含表示当前可放置选项哈希的键/值对。 此方法不接受任何参数。 Action - option 此操作获取一个对象,该对象包含表示当前可放置选项哈希的键/值对。 此方法不接受任何参数。 Syntax var options = $( ".selector" ).droppable( "option" ); |
5 | option( optionName ) 此操作使用指定的optionName获取当前关联的droppable元素的值。 这将String值作为参数。 Action - option( optionName ) 此操作使用指定的optionName获取当前关联的droppable元素的值。 这将String值作为参数。 Syntax var isDisabled = $( ".selector" ).droppable( "option", "disabled" ); |
6 | option( optionName, value ) 此操作设置与指定的optionName关联的droppable选项的值。 Action - option( optionName, value ) 此操作设置与指定的optionName关联的droppable选项的值。 参数optionName是要设置的选项的名称,value是要为该选项设置的值。 Syntax $( ".selector" ).droppable( "option", "disabled", true ); |
7 | option( options ) 此操作为droppable设置一个或多个选项。 参数选项是要设置的选项 - 值对的映射。 Action - option( options ) 此操作为droppable设置一个或多个选项。 参数选项是要设置的选项 - 值对的映射。 Syntax $( ".selector" ).droppable( "option", { disabled: true } ); |
8 | widget 此操作返回包含droppable元素的jQuery对象。 此方法不接受任何参数。 Syntax var widget = $( ".selector" ).droppable( "widget" ); |
示例
现在让我们看一个使用上表中的操作的示例。 以下示例演示了destroy()方法的用法。
jQuery UI Droppable - Default functionality drag 1
drag 2
drag 3
drop heredrop heredrop here
让我们将上面的代码保存在HTML文件dropexample.htm中,并在支持javascript的标准浏览器中打开它,你应该看到以下输出
如果在任何名为"drop here"的元素上删除"drag1",您会注意到此元素被删除,此操作会完全破坏元素的可放置功能。 你不能再次在这个元素上删除"drag2"和"drag3"。
可放置元素的事件管理
除了我们在前面部分中看到的droppable(options)方法之外,JqueryUI还提供了针对特定事件触发的事件方法。 这些事件方法如下所列:
Sr.No. | Event Method & Description |
---|---|
1 | activate(event, ui) 当接受的可拖动元素开始拖动时,将触发此事件。 如果您想在可以放置的情况下使droppable"亮起",这将非常有用。 Event - activate(event, ui) 当接受的可拖动元素开始拖动时,将触发此事件。 如果您想在可以放置的情况下使droppable"亮起",这将非常有用。 其中event是Event类型,ui是Object类型。 ui的可能值是
Syntax $( ".selector" ).droppable({ activate: function( event, ui ) {}}); |
2 | create(event, ui) 创建可放置元素时会触发此事件。 其中event是Event类型,ui是Object类型。 Event - create(event, ui) 创建可放置元素时会触发此事件。 其中event是Event类型,ui是Object类型。 Syntax $( ".selector" ).droppable({ create: function( event, ui ) {}}); |
3 | deactivate(event, ui) 当已接受的可拖动停止拖动时,将触发此事件。 其中event是Event类型,ui是Object类型。 Event - deactivate(event, ui) 当已接受的可拖动停止拖动时,将触发此事件。 其中event是Event类型,ui是Object类型
Syntax $(".selector").droppable( deactivate: function(event, ui) {}); |
4 | drop(event, ui) 在droppable上放置元素时会触发此操作。 这基于容差选项。 其中event是Event类型,ui是Object类型。 Event - drop(event, ui) 在droppable上放置元素时会触发此操作。 这基于容差选项。 其中event是Event类型,ui是Object类型,可能的类型是:
Syntax $(".selector").droppable( drop: function(event, ui) {}); |
5 | out(event, ui) T当已接受的可拖动元素被拖出droppable时,将触发他的事件。 这基于容差选项。 其中event是Event类型,ui是Object类型。 Event - out(event, ui) 当已接受的可拖动元素被拖出droppable时,将触发他的事件。 这基于容差选项。 其中event是Event类型,ui是Object类型。 Syntax $(".selector").droppable( out: function(event, ui) {}); |
6 | over(event, ui) 将可接受的可拖动元素拖过droppable时会触发此事件。 这基于容差选项。 其中event是Event类型,ui是Object类型。 Event - over(event, ui) 将可接受的可拖动元素拖过droppable时会触发此事件。 这基于容差选项。 其中event是Event类型,ui是Object类型,可能的类型是 :
Syntax $(".selector").droppable( over: function(event, ui) {}); |
示例
以下示例演示了删除功能期间的事件方法用法。 此示例演示了事件drop,over和out的使用。
jQuery UI Droppable - Default functionality Drag me to my target
Drop here
让我们将上面的代码保存在HTML文件dropexample.htm中,并在支持javascript的标准浏览器中打开它,你应该看到以下输出
在这里,您将注意到在拖动元素时droppable元素中的消息如何变化。