未捕获的类型错误:对象#<HTMLDivElement>没有方法'偏移'
Uncaught TypeError: Object #<HTMLDivElement> has no method 'offset'
我正在尝试动态创建一个元素,然后获取所述元素的中心。这是我所拥有的:
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。
我做错了什么?
您正试图在DOM
对象上调用jQuery
函数,因为get给了您DOM
对象而不是jQuery对象使用eq()
而不是get()
来获取jQuery对象
var node = $(ele).appendTo('#rPaper').eq(0);
.get(index)返回一个dom元素引用,该引用没有jQuery提供的offset()等方法。因此,您需要使用元素的jQuery包装器来使用像.offset()/.width()这样的方法
var node = $(ele).appendTo('#rPaper');
var node = $(ele).appendTo('#rPaper');
var offset = node.offset();
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Ajax文件加载和<输入>文件加载
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 如何更改<选择>使用angularJS从控制器获得的值
- 通过具有IE<11
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'偏移'
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'addPanel'
- MooTools Slider控件,TypeError:Object#<HTMLDivElement>没有方
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'绑定'
- Mootools元素>对象# & lt; HTMLDivElement>没有方法'addEvent'
- 对象# & lt; HTMLDivElement>没有方法'remove'