当元素从一个 Droppable 区域中拖出时,可以触发 jQuery UI 的 Droppable 的 out 事件。下面来详细讲解如何使用该事件,实现拖放功能。
一、基本语法
$(selector).droppable({
out: function(event, ui) {
// 处理代码
}
});
二、参数说明
- event:事件对象。
- ui:可拖动的元素和当前接收器的元素。
三、示例说明
示例1:拖动图片出接收区域
HTML代码:
<div id="droppable">放置图片</div>
<img id="draggable" src="test.jpg">
JavaScript代码:
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
out: outFunction
});
function outFunction( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "拖动图片到这里" );
}
该示例中,使用 draggable 方法将图片设为可拖动元素,并使用 droppable 方法将 div 元素设为接收器。在接收器上添加 out 事件。当图片被从接收器中拖出,触发 out 事件,将 div 元素背景设为黄色,并显示文字“拖动图片到这里”。
示例2:使用 ui.draggable 和 ui.helper 属性
HTML代码:
<div id="droppable">放置图片</div>
<img id="draggable" src="test.jpg">
JavaScript代码:
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
out: function(event, ui) {
console.log(ui.draggable.attr("id") + "已经被移出接收区域");
console.log(ui.helper);
}
});
该示例同样使用 draggable 方法将图片设为可拖动元素,并使用 droppable 方法将 div 元素设为接收器。在接收器上添加 out 事件,并使用 ui.draggable 获取当前被拖动的元素的 id,以及 ui.helper 获取当前被拖动的元素的 jQuery 对象。在控制台输出被移出接收区域的元素的 id,以及被拖动的元素的 jQuery 对象。
通过以上两个示例,可以看到 jQuery UI 的 Droppable 的 out 事件的用法。根据需求,可以对 out 事件进行扩展,实现更多交互效果。