从jquery()移植的dojo show()和hide()

时间:2013-03-10 16:54:10

标签: javascript jquery dojo

我只是将一堆代码从jQuery移植到DOJO(1.8)。我在显示/隐藏DOM元素时遇到了绊脚石(可能是图层或其他任何东西)。

假设我们有一个我们想要显示或隐藏的图层,没有动画。想象一下在某些事件上发生变化的Buttonbar,我不一定想一直引入图形效果。

<div id="myLayer">hide me</div>

在jQuery中我会这样做:

$("#myLayer").show();  // to show
$("#myLayer").hide();  // to hide

我觉得非常好看又苗条。现在移植到DOJO我发现我需要执行以下操作:

require(["dojo/fx/Toggler"], function(Toggler) {
    // Create a new Toggler with default options
    var toggler = new Toggler({
      node: "myLayer",
      hideDuration: 0,
      showDuration: 0
    });

    // Hide the node
    toggler.hide();

    // Show the node
    toggler.show();
  });

这是8行代码而不是2行代码。我错过了什么吗?有没有更简单的隐藏方法?

非常感谢, 托比

1 个答案:

答案 0 :(得分:6)

require(["dojo/query", "dojo/NodeList-dom", "dojo/domReady!"], function(query){
  query("#myLayer").style("display", "none");
});