0

道場でこのようなものを書く簡単な方法はありますか (表示または非表示にしたいものごとに関数を用意するのではなく)? このような繰り返しを回避する方法があるに違いないことは知っていますが、その方法がわかりません。

on(dom.byId("thing_toggle2"), "click", function(){
    if(thing_list2.style.display == "none") {
        thing_list2.style.display = "block";
        dom.byId("toggle2_sign").innerHTML = "(-)";
    } else {
        thing_list2.style.display = "none";  
        dom.byId("toggle2_sign").innerHTML = "(+)";   
    };
});

on(dom.byId("thing_toggle3"), "click", function(){
    if(thing_list3.style.display == "none") {
        thing_list3.style.display = "block";
        dom.byId("toggle3_sign").innerHTML = "(-)";
    } else {
        thing_list3.style.display = "none";  
        dom.byId("toggle3_sign").innerHTML = "(+)";   
    };
});
4

3 に答える 3

0

私は実際に、dojo を必要としないページを含め、他の場所で再利用できる単純な古い JavaScript 関数としてこれを行うことにしました。このようなもの:

<a href="#" onclick="javascript:showlayer('myName');return false;">[1]</a>
<a href="#" onclick="javascript:showlayer('anothername');return false;">[2]</a>

<div id="myName" style="display:none;">Antonio</div>
<div id="anothername" style="display:none;">Elliot</div>

<script type="text/javascript">
function showlayer(layer){
var myLayer = document.getElementById(layer).style.display;
if(myLayer=="none"){
    document.getElementById(layer).style.display="block";
    } else {
    document.getElementById(layer).style.display="none";
};

}
</script>
于 2013-04-25T20:51:47.223 に答える
0

dojo/_base/fx.fadeOutおよびdojo/_base/ fx.fadeIn を使用するdojo/fx/Togglerを使用できます。

于 2013-04-24T21:53:09.093 に答える