2013-08-06 83 views
1

什么是切换dojo中div的可见性的绝对最简单的方法,没有任何大惊小怪。在dojo中切换div的可见性

jQuery中我可以这样做:

$(document).ready(function(){ 
    $("#mydiv").hide();   
    $("#link-that-toggles-div").click(function()  
    {   
    $("#mydiv").slideToggle();   
    }); 
} 

... 

<a href="#" target="_self" id="link-that-toggles-div">Toggle the div</a> 
<div id="mydiv">Awesome content</div> 

是否有任何道场相当于东西吗?或者我必须推出自己的?例如,dojo.fx.Toggler迫使我手动进行显示/隐藏,而不是简单地给我一个toggle()函数。此外,所有示例都使用一个按钮来显示div,另一个用于隐藏它,我不确定为什么它在这种情况下甚至称为Toggler。

+0

检查这里http://dojotoolkit.org/reference-guide/1.9/dojo/fx/Toggler.html –

+1

正如我试图提到的问题,我意识到Toggler类,但我觉得它缺乏和重现相当的jQuery代码不完全是直截了当的。例如,我想要同一个按钮在显示和隐藏div之间切换。 Toggler类的所有示例都使用2个按钮。我是否真的需要编写自己的代码来检查div是否隐藏,并在那种情况下执行show(),反之亦然?为什么在这种情况下甚至称为Toggler?如果我必须自己实现所有的切换逻辑。 – Joakim

回答

2

这是一个简单的例子,您可以如何使用一个按钮:toggleIn/toggleOut。

require(["dojo/fx/Toggler", "dojo/dom", "dojo/on", "dojo/domReady!"], 
function(Toggler, dom, on){ 
var isClicked = false; 
var toggler = new Toggler({ 
node: "basicNode" 
}); 
on(dom.byId("toggleButton"), "click", function(e){ 
    if(isClicked===false){ 
     toggler.hide(); 
     isClicked=true; 
    } 
    else{ 
     toggler.show(); 
     isClicked=false; 
    } 
}); 
}); 

通过变量“isClicked”,您可以更改要使用的切换点。

下面是上面的例子中,小提琴: http://jsfiddle.net/XLAFz/

问候,杨千嬅

+0

感谢您的代码示例。我希望我不必自己实现所有这些逻辑,并且有更像jQuery示例的东西。 – Joakim

+0

好吧 - 这不是所有的功能,但它是一个很好的小而没有任何特殊或复杂的曲折。我已经使用了一个Button,只需在变量的帮助下更改被调用的函数。我对jquery不太了解,但遗憾的是似乎没有别的办法来处理dojo的切换。 – MiBrock

1
require(["dojo/dom", "dojo/dom-class", "dojo/on", "dojo/domReady!"], 
    function(dom, domClass, on){ 
     on(dom.byId("ID"), "click", function(){ 
      domClass.contains("ID", "hide")? domClass.replace("ID", "display", "hide"):   
              domClass.replace("ID", "hide", "display"); 
    }); 
}); 

/* .hide{display:none} .display{display: block} */ 
+0

domClass有一个'toggle'功能。 – mbomb007