8

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

以下编码是我尝试过的,但它们只是使按钮的文本不可见:

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

更新问题:

到 oborden2:

我试过你的代码,结果和上面的代码一样,下面是截屏:

在此处输入图像描述

致米布洛克:

我也试过你的代码,也得到了与上面的代码相同的结果: 在此处输入图像描述

4

3 回答 3

14

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');
});
于 2013-08-08T04:33:05.660 回答
1

尝试

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

变量“domNode”保留应受影响的节点的 id。这就是我们制作它的方式。

问候,米里亚姆

于 2013-08-07T07:53:25.337 回答
1

尝试使用 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模块将此链接到某个事件。将其链接到触发按钮需要隐藏的任何条件。

于 2013-08-07T13:43:46.770 回答