jQuery 可拖动,放置在父 div 之外时的事件

Posted

技术标签:

【中文标题】jQuery 可拖动,放置在父 div 之外时的事件【英文标题】:jQuery draggable, event when dropped outside of parent div 【发布时间】:2012-03-08 04:56:42 【问题描述】:

我有一个照片列表,并且我添加了可拖动的,但是当照片被拖动到父 div 之外时,我想更改它的类,以便它表明如果你放下它,它将被删除,然后当用户放下它时,我希望它触发一个功能。 (仅当它在父 div 之外)

<ul class="photos">
<li><img src=""/></li>
<li><img src=""/></li>
</ul>

所以当一个 li 被拖到 .photos 之外时,它会触发添加类,然后如果它被放到它之外,那么它会触发并删除它。

【问题讨论】:

【参考方案1】:

假设您提到的父 div 是可放置的,您可以将事件处理程序绑定到 dropout 事件:

$("#parentDiv").on("dropout", function(event, ui) 
    //ui.draggable refers to the draggable
);

只要将接受的可拖动对象拖动到可放置对象的容差区域之外,就会触发该事件。

更新(见 cmets)

您可以为revert 选项提供回调函数。该函数可以采用一个参数,该参数包含拖放可拖动对象的可拖放对象,或 false(如果将其拖放到无效的位置):

$("#draggable").draggable(
    revert: function(valid) 
        if(!valid) 
            //Dropped outside of valid droppable
        
    
);

这是working example。

【讨论】:

这适用于向其中添加类,但是如何检测它何时真正被删除? 当您将它拖到可放置对象之外时触发。我认为这就是你想要的,所以当它被拖到 droppable 之外时,你可以向它添加一个类? 是的,但我如何检测它何时真正掉到外面?

以上是关于jQuery 可拖动,放置在父 div 之外时的事件的主要内容,如果未能解决你的问题,请参考以下文章

可拖动元素的遏制

JQuery 可拖动到 iframe 之外。可放置在 iframe 内

jQuery UI:使用容差触摸放置对象时的可拖动行为

jQuery Droppable:放在 div 之外?

jquery可拖动/可放置更改快照

使用jQuery可拖动将项目拖动到可滚动的div之外