首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加/removing样式时使用dojoAttachpoint的问题

添加/removing样式时使用dojoAttachpoint的问题
EN

Stack Overflow用户
提问于 2011-03-23 14:06:49
回答 1查看 3.4K关注 0票数 1

我有一个div,如下所示:

代码语言:javascript
复制
<div id="xyz" dojoAttachPoint="xyz" style="display: none;">  </div>

现在我想显示/隐藏它。如果我使用dojo.byID,它就能正常工作。但是如果我使用dojoAttachppoint,它就不能正常工作。我没有得到任何错误,但更改不会发生。

代码语言:javascript
复制
dojo.byId("xyz").style.display="none";
dojo.byId("xyz").style.display="";


this.xyz.style.display ="none";
this.xyz.style.display ="";

会有什么问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-24 12:46:26

您是否在使用带有基类dijit._Templateddojo.declare声明的类内的模板中使用上述内容

你对附加点的理解是不可靠的。当dijit._Templated解析tenmplate时,当它看到一个"dojoAttachPoint“属性时,它将在dijit对象中创建一个带有附加点名称的属性。因此,"xyz“是dijit类对象中的一个属性。在读取模板时,名称取自名为"dojoAttachPoint“的属性。之后将不再使用dojoAttachPoint属性。

如果"this“指向您创建的dijit类,则this.xyz将指向DOM元素(即div),而不是小部件。因此,它不具有的"domNode“属性。在dijit/_Templated.js line#191中跟踪源代码以进行确认。

因此,您需要执行一些console.log调用来确认this.xyz返回了正确的div。如果是这样的话,你可以尝试dojo.style(this.xyz, "display", "none"),看看你是否可以隐藏它,等等。

至于为什么this.xyz.style.display = "none"不能工作,这可能是特定于浏览器的事情,因为它应该做与dojo.style相同的事情。你需要更深入地挖掘才能找到答案。

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

https://stackoverflow.com/questions/5401446

复制
相关文章

相似问题

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