检测何时将对象拖过另一个对象?

时间:2012-02-13 17:53:05

标签: jquery jquery-ui

这是我到目前为止所得到的:

onMouseMove: function(event) {
  clearTimeout(ics.timeout);
  ics.timeout = setTimeout(function() {
    var mouseX = event.pageX,
        mouseY = event.pageY;

    $(event.target).parents('li').siblings('li').not('.ui-placeholder').each(function() {
      var li = $(this),
          leftMin = li.offset().left,
          leftMax = parseInt(li.offset().left) + parseInt(li.width()),
          topMin = li.offset().top,
          topMax = parseInt(li.offset().top) + parseInt(li.height());

      var insideX = (mouseX > leftMin && mouseX < leftMax) ? true : false,
          insideY = (mouseY > topMin && mouseY < topMax) ? true : false;

      if (insideX && insideY) {
        console.log('hovering over another item!');
        console.log(this);
        return false;
      }
    });
  }, 300);
}

这会告诉我某些东西是否悬停在其他东西上,以及其他东西是什么,但只是想知道是否有人能想出更好的解决方案?

1 个答案:

答案 0 :(得分:2)

如果您也将使用droppable,则可以使用hoverClassdroppable的此选项将允许您为当前正在使用draggable悬停的任何元素设置css类。