如何隐藏 dijit/form/button?
Posted
技术标签:
【中文标题】如何隐藏 dijit/form/button?【英文标题】:How can I hide a dijit/form/button? 【发布时间】:2013-08-07 07:05:04 【问题描述】:我认为提供一种简单的方法来隐藏/显示和启用/禁用按钮是一种常识,但我找不到任何描述 dojo 的文档做了这样的事情。 无论如何,我希望我在谷歌搜索时错过了一些东西是我的错,谢谢!
以下编码是我尝试过的,但它们只是使按钮的文本不可见:
dojo.style(btnInsert, 'visibility':'hidden');
dojo.style(btnInsert, 'display':'none');
更新问题:
到 oborden2:
我试过你的代码,结果和上面的代码一样,这里是截图:
致米布洛克:
我也试过你的代码,也得到了和上面代码一样的结果:
【问题讨论】:
【参考方案1】:Dijit 中的表单小部件很特别。对于所有普通 Dijit 小部件,小部件的 domNode
(最外层节点)接收 id
属性。但是,对于表单小部件,focusNode
(对应于 <input>
元素)会接收 ID,因此 <label for="foo">
之类的东西可以正常工作。在这种情况下,最外层节点没有 ID,实际上您只是隐藏了内部 html 输入元素。
如果您已经引用了小部件:
require([ 'dojo/dom-style' ], function (domStyle)
domStyle.set(widget.domNode, 'display', 'none');
);
如果你只有一个小部件/原始 DOM 节点的 ID 的引用:
require([ 'dojo/dom-style', 'dijit/registry' ], function (domStyle, registry)
domStyle.set(registry.byId(nodeId).domNode, 'display', 'none');
);
【讨论】:
【参考方案2】:试试
require(["dojo/dom-style","dojo/domReady!"], function(domStyle)
domStyle.set(dojo.byId(domNode),'display','none');
);
变量“domNode”保留应该影响的节点的 id。这就是我们制作它的方式。
问候,米里亚姆
【讨论】:
【参考方案3】:尝试使用 Toggler 模块
require(["dojo/fx/Toggler"], function(Toggler),
// Create a new Toggler with default options
var toggler = new Toggler(
node: "btnInsert"
);
// Hide the node
toggler.hide();
// Show the node
toggler.show();
);
http://dojotoolkit.org/reference-guide/1.9/dojo/fx/Toggler.html
我想您可能希望使用 Dojo 的 on
模块将此链接到某个事件。将其链接到触发按钮需要隐藏的任何条件。
【讨论】:
我使用 Toggler 做了一些测试,但并没有真正隐藏按钮。它只是让它变得透明。您仍然可以通过将鼠标悬停在其先前位置并单击它来单击该按钮。我很想知道你是如何解决这个问题的?以上是关于如何隐藏 dijit/form/button?的主要内容,如果未能解决你的问题,请参考以下文章