在w / jQuery上拖动时,将CSS类添加到元素中

是否可以在元素被拖动到特定区域时向元素添加CSS类,并在元素被删除后替换类?

我不是在任何地方寻找这个function,而只是在特定区域。

是的,这当然是可能的。 jQuery UI提供了一些方便的选项和事件来执行此操作。

对于初学者来说,draggable元素总是可以被类.ui-draggable-dragging在被.ui-draggable-dragging时引用。

然后, droppable方法提供一个调用的事件,只要有效的可拖动对象hover在该事件over ,该事件就会执行该函数。 所以,在该函数中我们可以引用.ui-draggable-dragging并向其添加一个类。

还提供了Outdrop事件,我们可以以相同的方式定位可拖动元素。 这是它的样子:

 $("#droppable").droppable({ // tolerance can be set to 'fit', 'intersect', 'pointer', or 'touch' tolerance: 'intersect', // Add .hoverClass whenever #draggable is being hovered over #droppable over: function(event, ui) { $('.ui-draggable-dragging').addClass('hoverClass'); }, // Remove .hoverClass whenever #draggable is no longer hovered over #droppable out: function(event, ui) { $('.ui-draggable-dragging').removeClass('hoverClass'); }, // Add .dropClass whenever #draggable is dropped on #droppable drop: function(event, ui) { $('.ui-draggable-dragging').removeClass('hoverClass').addClass('dropClass'); } }); 

#draggable#draggable相交时,上面的代码会添加一个类,然后在#draggable被删除到#droppable时替换该类。 此外,当两个元素不再相交时,将删除.hoverClass 。 这是jsfiddle的一个工作示例 。

希望有所帮助。

我发现有趣的是使用回调提供的准备好的ui对象,所以你不必再次进行dom查询。 每次小的性能提升都很好,特别是在使用拖放时;-) …

  over: function(e, ui) { $(ui.helper[0]).addClass("success"); } 

最好。

没试过,但我首先想到的是收集你希望它改变class级的区域的x,y坐标,高度,宽度。 然后,假设您可以获取被拖动对象的x,y坐标,当对象在这些边界内时,添加类,当外部移除类时。