jQuery UI Droppable

2025年03月17日 | 阅读 9 分钟

jQuery UI 允许您使用 droppable() 方法,使任何 DOM 元素在指定目标上可放置。

语法

您可以使用两种形式的 droppable() 方法

第一种方法

droppable(options) 方法指定您可以使用 HTML 元素作为可以放置其他元素的元素。 在这里,option 参数指定所涉及元素的行为。

语法

您可以使用 JavaScript 对象一次使用一个或多个选项。 如果您使用多个选项,则必须使用逗号分隔它们。 例如

以下是可以与此方法一起使用的不同选项的列表

选项描述
accept当您需要控制接受哪些可拖动元素进行放置时,可以使用此选项。 默认情况下,它的值为 *。
activeclass此选项是一个字符串,表示当接受的元素(options.accept 中指示的那些元素之一)正在被拖动时,要添加到可放置元素的一个或多个 CSS 类。 默认情况下,其值为 false。
addclasses当此选项设置为 false 时,将阻止将 ui-droppable 类添加到可放置元素。 默认情况下,其值为 true。
diasabled当此选项设置为 true 时,将禁用可放置功能。 默认情况下,其值为 false。
greedy当您需要控制将哪些可拖动元素放置在嵌套的可放置元素上时,可以使用此选项。 默认情况下,其值为 false。 如果此选项设置为 true,则任何父级可放置元素都不会收到该元素。
hoverclass此选项是一个字符串,表示当接受的元素(options.accept 中指示的元素)移动到其中时,要添加到可放置元素的元素的一个或多个 CSS 类。 默认情况下,其值为 false。
scope此选项用于将可拖动元素的可放置操作限制为仅具有相同 options.scope(在 draggable(options) 中定义)的项目。 默认情况下,其值为“default”。
tolerence此选项是一个字符串,用于指定使用哪种模式来测试可拖动元素是否悬停在可放置元素之上。 默认情况下,它的值为“intersect”。

jQuery UI Droppable() 方法示例 1

让我们举个例子来演示没有参数的 jQuery UI Droppable() 方法。

立即测试

jQuery UI Droppable() 方法示例 2

b) 如何使用 addClass、disabled 和 tolerance

以下示例指定如何在 jQuery UI 的 drop 函数中使用这三个选项 addClass、disable 和 tolerance。

立即测试

jQuery UI Droppable() 方法示例 3

c) 如何选择要放置的元素

以下示例指定如何在 jQuery UI 的 drag 函数中使用 accept 和 scope 选项

立即测试

jQuery UI Droppable() 方法示例 4

d) 如何使用 activeClass 和 hoverClass

jQuery UI 的 activeClass 和 hoverClass 选项用于管理外观。 让我们举个例子来演示这种效果

立即测试

第二种方法

droppable("action", params) 方法用于对可放置元素执行操作,例如阻止可放置功能。 您必须在第一个参数中传递一个指定为字符串的操作。 即“disable”以阻止放置。

语法

以下是可以与此方法一起使用的操作列表

操作描述
accept当您需要控制接受哪些可拖动元素进行放置时,可以使用此选项。 默认情况下,它的值为 *。
activeclass此选项是一个字符串,表示当接受的元素(options.accept 中指示的那些元素之一)正在被拖动时,要添加到可放置元素的一个或多个 CSS 类。 默认情况下,其值为 false。
addclasses当此选项设置为 false 时,将阻止将 ui-droppable 类添加到可放置元素。默认情况下,其值为 true。
disabled当此选项设置为 true 时,将禁用可放置功能。 默认情况下,其值为 false。
greedy当您需要控制将哪些可拖动元素放置在嵌套的可放置元素上时,可以使用此选项。 默认情况下,其值为 false。 如果此选项设置为 true,则任何父级可放置元素都不会收到该元素。
hoverclass此选项是一个字符串,表示当接受的元素(options.accept 中指示的元素)移动到其中时,要添加到可放置元素的元素的一个或多个 CSS 类。 默认情况下,其值为 false。
scope此选项用于将可拖动元素的可放置操作限制为仅具有相同 options.scope(在 draggable(options) 中定义)的项目。 默认情况下,其值为“default”。
tolerence此选项是一个字符串,用于指定使用哪种模式来测试可拖动元素是否悬停在可放置元素之上。 默认情况下,它的值为“intersect”。

jQuery UI Droppable() 方法示例 5

让我们举个例子来演示 destroy() 方法的用法

立即测试

jQueryUI 中有一些事件方法,这些方法会在特定事件触发时触发。 以下是一些事件方法。

事件方法描述
activate(event, ui)当接受的可拖动元素开始拖动时,会触发此事件。 如果您想使可放置元素在可以放置时“亮起”,这将非常有用。
create(event,ui)创建可放置元素时会触发此事件。 “where”事件的类型为 event,而“ui”的类型为 object。
deactivate(event,ui)当接受的可拖动元素停止拖动时,会触发此事件。 “Where”事件的类型为 event,而 ui 的类型为 object。
drop(event,ui)当元素放置在可放置元素上时,会触发此操作。 这是基于 tolerance 选项。 “Where”事件的类型为 event,而“ui”的类型为 object。
out(event,ui)当接受的可拖动元素被拖出可放置元素时,会触发此事件。 这是基于 tolerance 选项。 “Where”事件的类型为 event,而“ui”的类型为 object。
over(event,ui)当接受的可拖动元素被拖到可放置元素上时,会触发此事件。 这是基于 tolerance 选项。 “Where”事件的类型为 event,而“ui”的类型为 object。

jQuery UI Droppable() 方法示例 6

让我们举个例子来演示 drop 功能期间的“drop”、“over”和“out”事件。

立即测试
下一个主题jQuery UI Resizable