我现在在拖动完div的后想知道该div四周是否有相邻的div,
或者是否悬浮在那些div在上面,我现在是通过循环判断每个div来实现的。
现在问题是如何用其他更好的办法去判断(主要是如果页面上div多了就怕速度会慢)。
注 onmouseover onmouseleave 我多试过了不行 因为我这个不能根据 这些去判断 我要根据我拖动的div去判断的。

解决方案 »

  1.   

    LZ说的相邻是什么意思?位置上的相邻还是DOM树关系上的相邻?如果是位置上的相邻,只能通过坐标判断了
      

  2.   

    var Point = function(divId, left, top, width, height) {
    this.divId = divId;
    this.left = left;
    this.top = top;
    this.width = width;
    this.height = height;
    }var pointList = [];在生成div的时候把位置信息放入pointList数组。判断的时候单用位置信息循环,而不用Div循环,这样应该会快很多
      

  3.   

    这个我已经是在这个判断了 ,在那里面我是循环去获取dom 里面所有的div 节点那样就要全部判断过去了。
      

  4.   

    楼主把所有的id设置成temp_i 如果改div周围有temp_i就说明有div i是变量
      

  5.   

    那怎么判断 周围有div,div 可能重叠在 上面?而且每个div 多可以随意拖动的。
      

  6.   


    遍历去找,
    页面加载的时候,最好用数组保存所有div坐标,这样遍历时对性能影响较低
    位置调整后,更新一个坐标数组.
      

  7.   

    我现在差不多就是这样弄的。一旦页面上div 多的话 遍历就很慢了。
      

  8.   

    应该不会慢,我记得google早期的igoogle是这样的原理,
    mousemove的时候不要操作dom,只是进行数据比较.不知道你说的div多是有多少..
      

  9.   

    如果你在VS中作的话,当你点击一个开始或者结束的div的时候,其他和它配对的就会有灰色的背景,你信心观察下就可以找到你想要的。顺便提醒一下千万不要急,慢慢来捋顺。捋顺了就可以放在对的位置上了。
      

  10.   

    想做图层对拖是比较复杂的,建议下个jquery插件试下
      

  11.   

    我现在是用一个数组来记录 的 假定没个 div 的宽度 和高度 多少 60 
    则如果拖动后div 的 是 的60,60 则我就把这个div 存入数组 0,0 里面 再在这里面找他附近数组([0,1],[1,0],[1,1])是否有值有值则取过来比较下。