首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XTK:找不到给定的容器

XTK:找不到给定的容器
EN

Stack Overflow用户
提问于 2012-08-06 11:23:59
回答 3查看 350关注 0票数 2

我使用jQuery动态创建一个div,然后将该div的id作为renderer3D的容器进行传递。当我这样做的时候:

代码语言:javascript
复制
r.container = id

我在JS控制台中看到一个错误,显示为“找不到给定的容器”。我已经检查过了,div在DOM中并且是可见的。奇怪的是,它工作得很好,但我对加载XTK库的时间做了一个小小的改变。

EN

回答 3

Stack Overflow用户

发布于 2012-11-02 09:18:58

在提交https://github.com/xtk/X/commit/77d6c1e6e3062465acc297f782f410cf5a470211之后,它应该都可以工作了!问题是谷歌闭包编译器使用$来优化代码,这打破了jQuery的使用。

请参阅此处的示例http://jsfiddle.net/YLVPr/

代码语言:javascript
复制
var element = $(document.body);
//container.show();
var id = 'xtkwidget_' + 1;//utils.uuid();
var xtkdiv = $('<div/>').attr('id',id);
xtkdiv.css('background-color','#FFF').width(400).height(300);
element.append(xtkdiv);
var obj_c54ce3e329b84364b5542aeb4c303ece = new X.renderer3D();
obj_c54ce3e329b84364b5542aeb4c303ece.container = document.getElementById(id); // NOTE here we have to pass the original div, not the id or the jQuery object
obj_c54ce3e329b84364b5542aeb4c303ece.init();

var obj_bd99e35ed147423faa2a2d77cbc540af = new X.mesh();
obj_bd99e35ed147423faa2a2d77cbc540af.magicmode = true;
obj_bd99e35ed147423faa2a2d77cbc540af.opacity = 0.700000;
obj_bd99e35ed147423faa2a2d77cbc540af.color = [1.000000,1.000000,1.000000];
obj_bd99e35ed147423faa2a2d77cbc540af.file = "http://x.babymri.org/?avf.vtk";
obj_c54ce3e329b84364b5542aeb4c303ece.add(obj_bd99e35ed147423faa2a2d77cbc540af);
obj_c54ce3e329b84364b5542aeb4c303ece.render();​
票数 2
EN

Stack Overflow用户

发布于 2012-08-10 06:17:37

该代码是一个相当复杂的web应用程序的一部分。实际的JavaScript代码由服务器动态生成,通过JSON发送到浏览器,然后传递给eval。下面是代码的示例:

代码语言:javascript
复制
container.show();
var id = 'xtkwidget_' + utils.uuid();
var xtkdiv = $('<div/>').attr('id',id);
xtkdiv.css('background-color','#FFF').width(400).height(300);
element.append(xtkdiv);
var obj_c54ce3e329b84364b5542aeb4c303ece = new X.renderer3D();
obj_c54ce3e329b84364b5542aeb4c303ece.container = id;
obj_c54ce3e329b84364b5542aeb4c303ece.init();

var obj_bd99e35ed147423faa2a2d77cbc540af = new X.mesh();
obj_bd99e35ed147423faa2a2d77cbc540af.magicmode = true;
obj_bd99e35ed147423faa2a2d77cbc540af.opacity = 0.700000;
obj_bd99e35ed147423faa2a2d77cbc540af.color = [1.000000,1.000000,1.000000];
obj_bd99e35ed147423faa2a2d77cbc540af.file = "files/smallsurface.vtk";
obj_c54ce3e329b84364b5542aeb4c303ece.add(obj_bd99e35ed147423faa2a2d77cbc540af);
obj_c54ce3e329b84364b5542aeb4c303ece.render();
票数 1
EN

Stack Overflow用户

发布于 2012-08-06 15:20:44

你能围绕这个给出更多的代码行吗?

第一个可能的问题:你是怎么写你的id的?If必须是“xtkcontainer”,而不是“#xtkcontainer”,这与jQuery中的不同。

另一个可能的问题是:您的代码行在窗口加载结束之前执行。您的代码是在主体之后编写的,还是在“window.onload”函数中编写的,还是在用户加载窗口或超时事件后执行的?

Ricola3D

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11822195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档