我试图动态创建一个元素,然后得到该元素的中心。以下是我所拥有的:
function drawnode(entity, x, y) {
var ele = ""
ele += "<div class='relNode'>";
ele += "<span>" + entity.name() + "</span>"
ele += "<div>"
var node = $(ele).appendTo('#rPaper').get(0);
var offset = node.offset();
var width = node.width();
var height = node.height();
var centerX = offset.left + width / 2;
var centerY = offset.top + height / 2;
node.css("top", centerY + y).css("left", centerX + x);
}这就给出了错误
Object #<HTMLDivElement> has no method 'offset'
我最初尝试了没有.get(0),它没有错误,但高度和宽度都是0。
我做错了什么?
发布于 2013-12-05 04:39:49
您正在尝试调用DOM对象上的DOM函数,因为get给了您DOM对象而不是jQuery对象,使用eq()而不是get()获取jQuery对象
var node = $(ele).appendTo('#rPaper').eq(0);发布于 2013-12-05 04:39:22
.get(索引)返回一个dom元素引用,它没有jQuery提供的像抵消()这样的方法。因此,您需要为元素使用jQuery包装器来使用像.offset()/.width()这样的方法
var node = $(ele).appendTo('#rPaper');发布于 2013-12-05 04:39:43
var node = $(ele).appendTo('#rPaper');
var offset = node.offset();https://stackoverflow.com/questions/20391539
复制相似问题