2013-08-07 68 views
6

我认为提供隐藏/显示和启用/禁用按钮的简单方法是常识,但我找不到任何描述dojo做过这种事情的文档。 任何方式,我希望这是我的错,我错过了一些谷歌搜索,谢谢!如何隐藏dijit /表单/按钮?

下面的编码是什么,我都试过,但他们只是把按钮的文本无形:

dojo.style(btnInsert, {'visibility':'hidden'}); 
dojo.style(btnInsert, {'display':'none'}); 

UPDATE问:

要oborden2:

我已经试过你的代码,结果与上面的代码相同,这里是捕获的屏幕:

enter image description here

要MiBrock:

我也想你的代码,同时也得到结果同上代码: enter image description here

回答

10

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'); 
}); 
+0

它的工作原理!谢谢你的解释。 –

1

尝试

require(["dojo/dom-style","dojo/domReady!"], function(domStyle){ 
    domStyle.set(dojo.byId(domNode),'display','none'); 
}); 

变量“れ”停留应该受到影响的节点的ID。这是我们做到这一点的方式。

问候,杨千嬅使用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模块的一些事件

+0

我已经更新的问题, 谢谢! –

0

尝试。将它链接到任何条件都会触发按钮的需要隐藏。

+0

我已经更新了这个问题,谢谢! –

+0

我做了一些使用Toggler的测试,但并没有真正隐藏按钮。它只是使它透明。您仍然可以通过将鼠标悬停在其之前的位置并单击该按钮来单击该按钮。我对你如何解决这个问题感兴趣? –