问题用dojoAttachpoint而addding /删除风格
我有一个div,如下所示:问题用dojoAttachpoint而addding /删除风格
<div id="xyz" dojoAttachPoint="xyz" style="display: none;"> </div>
现在我想显示/隐藏它。如果我使用dojo.byID进行操作。但是,如果我使用dojoAttachppoint执行它,它不能正常工作。我没有得到任何错误,但没有发生变化。
dojo.byId("xyz").style.display="none";
dojo.byId("xyz").style.display="";
this.xyz.style.display ="none";
this.xyz.style.display ="";
可能是什么问题?
您是否正在使用dojo.declare
和基类dijit._Templated
声明的类中的模板中使用上述内容?
你对附着点的理解是片状的。当dijit._Templated
分析模板时,以及当它看到“dojoAttachPoint”属性时,它将使用附加点的名称在dijit对象中创建一个属性。因此,“xyz”是dijit类对象中的一个属性。当模板正在读取时,该名称取自名为“dojoAttachPoint”的属性。之后不再使用dojoAttachPoint属性。
如果“这个”点到您创建的类的dijit,this.xyz
将指向DOM元素(即股利),从来就不是一个小部件。因此它确实不是有一个“domNode”属性。跟踪dijit/_Templated.js line#191
中的源代码进行确认。
因此,您需要做一些console.log
调用以确认this.xyz
正在返回正确的div。如果确实如此,那么你可以尝试dojo.style(this.xyz, "display", "none")
,看看是否可以将其隐藏等
至于为什么this.xyz.style.display = "none"
将无法正常工作,它可能是一个特定的浏览器的东西,因为它应该做同样的事情dojo.style
。你需要深入挖掘才能发现。
@Stephen:xyz in not property。它是dojoAttachpoint.So我的代码是this.myAttachpoint.style.display或this.myAttachpoint.domNode.style.display – dojoX 2011-03-24 06:42:45
dojo.byId(“xyz”)就是用this.xyz替换,其中xyz是一个附加点。此外,我已经尝试使用this.xyz.innerHTML,它的工作原理 – dojoX 2011-03-24 06:44:17
在这种情况下,您正在使用'dojo.declare'与基类'dijit._Templated'声明的类中的模板中使用上述?你为什么不在你的问题中这么说? – 2011-03-24 07:35:22
那么,这是在'_Templated'中的一个小部件混合模板?我问,因为这是'dojoAttachPoint's被分析/连接的唯一地方。 – 2011-03-24 02:13:56
这个问题似乎与dojoAttachPoint没有关系。 – 2011-03-24 04:40:55
@Ken:是的,有一个模板和相应的js文件 – dojoX 2011-03-24 06:41:18