在设置jQuery droppable时,您可以根据可拖动的鼠标悬停来分配一个类(或函数),如下所示:
$(".myDroppable")
.droppable({
hoverClass : 'droppableStyle'
})
简单,默认情况下可以拖放jQuery,效果很好。
但是,我正在研究依赖触摸的解决方案,因此,我选择不使用jQuery draggables来拖动部分。不过,我还是喜欢使用Droppables。
问题:什么是可以放置'监听'以确定某个项目是否被拖过它?有没有什么方法可以触发我家中的一些鼠标事件,因为它被拖动会发出信号表示droppable的hoverClass?
答案 0 :(得分:1)
我相信over
和out
事件会触发此选项,但我还没有使用没有可拖动的droppable来测试它。您可以使用accept
选项选择自制的可拖动对象,并且可放置的应该可以相应地处理它。
$(".myDroppable")
.droppable({
hoverClass: "droppableStyle",
accept: ".homeMadeDraggable"
});
虽然很难说明究竟会发生什么,但却没有看你的代码。看一下droppable的源代码,结合阅读api,它应该澄清表面下发生了什么,以及它是否适用于您的情况。
_over: function(event) {
var draggable = $.ui.ddmanager.current;
if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
if (this.options.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
this._trigger('over', event, this.ui(draggable));
}
},
_out: function(event) {
var draggable = $.ui.ddmanager.current;
if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
if (this.options.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
this._trigger('out', event, this.ui(draggable));
}
},