2010-11-03 34 views
5

Dojo'da div dijit için temel bir show/hide uygulaması yapmaya çalışıyorum. Çalıştığım diğer javascript çerçevelerine göre, bu kolay olmalı, ancak en iyisini zor buldum. İşte Dojo dijit görüntüsünü değiştirme

Aşağıda vücutta benim kodudur

<script type="text/javascript"> 
dojo.require("dijit.form.Button"); 
dojo.require("dijit.layout.ContentPane"); 
dojo.require("dojo.fx"); 
var toggler = null; 
function basicToggle() { 
    toggler = new dojo.fx.Toggler({ 
     node: "panel", 
     showFunc : dojo.fx.wipeIn, 
     hideFunc : dojo.fx.wipeOut 
    }) 
} 
dojo.addOnLoad(basicToggle); 
</script> 

kodudur.

<button dojoType="dijit.form.Button">  
    <img src="wrapper/images/header-settings.png" border="0" />  
    <script type="dojo/method" event="onClick"> 
     toggler[dijit.byId("panel").attr("displayed") ? 'show':'hide'](); 
    </script> 
</button> 
<div id="panel" dojoType="dijit.layout.ContentPane" style="border: .2em dotted  #900;display: none"> 
This is a content pane.</div> 
</body> 

Şu anda görüyorum davranış div yeniden gizlidir sonra butonuna tıkladıktan sonra anlık olarak gösteriliyordu fakat olmasıdır. Neyi yanlış yapıyorum?

cevap

5

Sanırım show/hide mantığına geri döndünüz mü? Ayrıca, 'görüntülenen' Dojo'nun çok eski bir versiyonundan geldiğini düşünüyorum. yerine tarzı bakarak sadece deneyin

toggler[(dojo.style("panel","display") == "none") ? 'show':'hide'](); 

aynı etkiyi elde etmek için dojo.connect kullanan bir örnek in the docs var (bu kez daha 'none' kontrol ettiği mantığını çevirir dikkat edin).

İlgili konular