我有一些像这样的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()
?也许我会...
如果有人做过类似的事情,请指出我正确的方向。
由于 -Josh
答案 0 :(得分:1)
执行此操作的简单方法可能是绝对定位一些动态创建的div并为其分配mouseOver事件。它们必须具有高z-index,不可见,并且漂浮在其他内容之上。
答案 1 :(得分:0)
根据选择的范例,你可以得到你妈妈的offSet,说你的父母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;
如果匹配,则触发显示您需要的事件!
答案 2 :(得分:0)
我不知道这个想法是否适用于你想要的东西,但我在盒子外面做了一点思考......
使用图像地图怎么样? :P
它需要最少的编码和处理,它的工作原理!我覆盖了映射图像并在区域上添加了悬停事件。我发布了一个demo here - 它并不完美,但更多的是概念验证。