jQuery Droppable:触发什么是触发' hover'属性?

时间:2014-01-23 02:54:34

标签: jquery touch mouseevent droppable jquery-ui-droppable

在设置jQuery droppable时,您可以根据可拖动的鼠标悬停来分配一个类(或函数),如下所示:

$(".myDroppable")
    .droppable({
        hoverClass : 'droppableStyle'
    })

简单,默认情况下可以拖放jQuery,效果很好。

但是,我正在研究依赖触摸的解决方案,因此,我选择不使用jQuery draggables来拖动部分。不过,我还是喜欢使用Droppables。

问题:什么是可以放置'监听'以确定某个项目是否被拖过它?有没有什么方法可以触发我家中的一些鼠标事件,因为它被拖动会发出信号表示droppable的hoverClass?

1 个答案:

答案 0 :(得分:1)

我相信overout事件会触发此选项,但我还没有使用没有可拖动的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));
            }

    },