一开始开以为是UI层面上的拖动,了解了之后才发现是数据层面的,但是现在我所需要的,就是类似‘dragover’这类事件,就是当拖动到某个元素上的时候才触发,尝试着使用mousemove在UI层面上使得元素可拖动,但是悲剧的是,mousedown的时候,由于触发dragstart事件,而浏览器的默认行为貌似阻止了mousemove,而且鼠标手势也变成了一个类似禁止的图标(chrome下),若在mousedown的时候阻止浏览器的默认行为,又不能触发dragstart事件,trigger也没用,jquery UI的draggable也试过了,也没用,不用draggable属性的话,貌似又只能通过left,top,translate之类的属性来判断,这样的话,在我的情况下就要做大量的循环和判断,性能损失太大了,跪求各位有什么解决办法没?主要的目的就是拖动的时候,能够简便地获得当前被拖动元素是否被拖动到了某个元素的上方,多谢各位了。

解决方案 »

  1.   

    另外,吐槽一下drag事件,完全就是不受控制的drag,只要触发dragstart,在触发drop事件之前,会一直触发drag事件,不管你鼠标有没有停下,或者移动的快慢。
      

  2.   

    刚刚看到jQuery UI的droppable貌似不错,但是over事件在目标元素上拖动时只能触发一次,而我的需要是在目标上拖动的时候能够不断触发,达到某个阀值之后,执行一些自己的代码,目前能想到的是over事件触发的时候绑定mousemove事件,单独测试可行,但是就怕会和之前的事件冲突,况且droppable也需要绑定draggable,当时就是因为draggable拙劣的性能而舍弃了,不知道droppable的原理如何?求各位指导,写了一天,头痛,明天再看了。