我正在尝试通过nodeName和nodeIndex获取html元素的位置。不过,我目前通过从数据库传递节点名和索引来使用它……(见下文)
$thing = $("BUTTON").eq(1);
thisLeft = $thing.offset().left;
thisTop = $thing.offset().top;
x_left = thisLeft + x_coord
y_top = thisTop + y_coord我想使用下面的函数,当我传递对象时,它在onclick上工作,因为它的准确性,即使它在父元素中,也可以获得位置。是否可以像我的$("BUTTON").eq(1)示例那样传入节点名和节点索引(我在数据库中有),以从以下函数返回准确的x和y……
function findPos(obj) {
var curleft = 0, curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return { x: curleft, y: curtop };
}
return undefined;
}单击处理程序中的此函数输出正确的x和y...
var pos = findPos(e);
var x = e.pageX - pos.x;
var y = e.pageY - pos.y;
var coordinateDisplay = "x=" + x + ", y=" + y;
console.log(coordinateDisplay);发布于 2015-05-02 06:53:36
HTML5允许数据标记属性,您可以在JQuery here中阅读到该属性。
当您从数据库生成节点时,您可以执行如下操作
<div class="node" data-nodeName="ImANode" data-nodeIndex="0" ></div>然后,您可以使用以下命令选择每一个
$("div[data-nodeName='ImANode'][data-nodeIndex='0']")https://stackoverflow.com/questions/29996091
复制相似问题