删除拖动的元素并使用jQuery重置光标
我使用jQuery拖放时遇到问题。 这是一个非常简单的小提琴,显示了我的意思( http://jsfiddle.net/Znt44/1/ ):
$('#drop').droppable({ drop: function (e, ui) { ui.draggable.remove(); } }); $('#drag').draggable({ cursor: 'move' });
如您所见,我在拖动时将光标设置为十字准线,这有效。
如果您将绿色框放在红色框上,光标将不会重置。 看起来光标也附加到红色框,并且不会重置。
如果您将绿色框放在其他位置,光标将完全重置。
重置光标的正确方法是什么?
或删除有什么问题?
在我的情况下,我注意到在拖动它时强制在我的父元素上使用style="cursor:move"
。 所以我强制在drop方法结束时使用style="cursor:auto"
(我的父元素是 ):
$('body').css('cursor', 'auto');
我认为光标样式是附加到身体的“层”的问题。 我使用JQuery应用于当前拖动对象的类的样式在我的页面中解决了同样的问题:
.ui-draggable-dragging { cursor:move}
在这种情况下(在你的JSFiddle测试用例中)你可以注意到当你的拖动hover在droppable元素上时,光标是最高的z-position元素之一。
尝试改变顺序
drag me!
至
drag me!
而你看到了差异。 或者您可以使用.draggable()的zIndex属性。
如果你的真实案例很合适,我认为它可以是一个很好的替代解决方案,而不是重置主体元素上的游标,因为它更具体 。
尝试在您的droppable上添加cursor: auto
:
$('#drop').droppable({ cursor: 'auto', drop: function (e, ui) { ui.draggable.remove(); } }); $('#drag').draggable({ cursor: 'move' });
我编辑了你的小提琴 。
- 父帧和子iframe之间的拖放元素
- jQuery UI,Draggable,Droppable,Auto Scroll
- Jquery拖放不在Firefox中工作,在chrome和safari中工作正常
- Draggables Jquery UI,在droppable上禁用单个div
- 使用网格恢复’无效’不会返回到jQuery UI Draggable的起始位置
- 如何使jQuery draggable实际上捕捉到同样大小的dropable
- 当达到可放置限制时,jQuery UI draggable / sortable / droppable禁用drop
- 如何在不实际拖放的情况下使用jQuery UI Droppable触发Drop事件?
- 如果缩放,Jquery可放置区域错误