0

我有一些这样的 JavaScript 对象(它是伪对象,所以我知道语法是否错误):

[{ "divid":"1","x1":"35","y1":"100","height":"150","width":"150" },
{ "divid":"2","x1":"45","y1":"110","height":"150","width":"150" },
{ "divid":"3","x1":"55","y1":"120","height":"150","width":"150" },
{ "divid":"4","x1":"65","y1":"130","height":"150","width":"150" }]

而且我目前正在使用 jQuery 检测鼠标位置,这很好但是......

我想检测当我超过其中一个位置时自动返回该 JavaScript 集的第一列或多列,几乎就像我在查询它,如果位置在其中一个返回列的集合列表之间。

我无法想象.each()每次鼠标位置发生变化时我都必须对所有这些都做一遍?也许我会...

如果有人以前做过这样的事情,请指出我正确的方向。

谢谢-乔什

4

3 回答 3

1

一个简单的方法可能是绝对定位一些动态创建的 div 并为它们分配一个 mouseOver 事件。它们必须具有高 z-index、不可见并漂浮在其他内容之上。

于 2009-11-17T23:05:17.937 回答
0

根据所选的范例,您可以获得慕斯的偏移量,例如您的父 div,然后将返回值与您从 json 中获得的值进行比较!

getposOffset:function(what, offsettype){
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;

如果匹配,则触发显示您需要的事件!

于 2009-11-18T00:45:40.650 回答
0

我不知道这个想法是否适合你想要的,但我在盒子外面做了一点思考......

使用图像映射怎么样?:P

它需要最少的编码和处理,并且可以工作!我覆盖了一个映射图像并在这些区域上添加了悬停事件。我在这里发布了一个演示- 它并不完美,但更多的是概念证明。

于 2009-11-18T22:59:20.793 回答