2013-08-07 100 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的測試,但並沒有真正隱藏按鈕。它只是使它透明。您仍然可以通過將鼠標懸停在其之前的位置並單擊該按鈕來單擊該按鈕。我對你如何解決這個問題感興趣? –