Javascript Dojo切换程序不使用显示:无

Javascript Dojo切换程序不使用显示:无,javascript,html,dojo,display,Javascript,Html,Dojo,Display,这是工作原理的一个示例: <html> <head> <script type="text/javascript" src="dojo/dojo.js"> </script> <script language="javascript" type="text/javascript"> require(["dojo/dom","dojo/fx/Toggler","dojo/topic","dojo/domReady!"], fu

这是工作原理的一个示例:

<html>
<head>

<script type="text/javascript" src="dojo/dojo.js">
</script>
<script language="javascript" type="text/javascript">
require(["dojo/dom","dojo/fx/Toggler","dojo/topic","dojo/domReady!"],

    function(dom,Toggler,topic){
var toggler = new Toggler ({
    node: "test"
});
alert("something");     
toggler.hide();

});
</script>
</head>
<body>
<div id="test">This is just a test.</div>
</body>
</html>

问题:

  • 为什么会这样
  • 我使用dojo或其切换模块的方式是否存在根本性的问题
  • 切换器(如果有)的替代方案是什么?我可以将其与
    显示一起使用:无

注意:

我已经检查了各种可能重复的链接,但它们都提供了如下所述的解决方法:-

  • 使用
    dojo.style(“test”、“display”和“”)
    是可行的,但在复杂的项目中,它会干扰对齐等
  • 删除
    display:none
    或将其替换为
    visibility:hidden
    不是我的选择。这是可行的,但如果存在实际的解决方案,我希望避免采取变通办法

切换器动画使用fadeIn和fadeOut功能更改节点的可见性。从而更新节点的不透明度。也就是说,节点仍然存在,只是不可见

使用切换开关显示时,将显示设置为“无”不会更新。此外,设置“显示”属性允许其他节点占据当前节点所占据的位置


所以,你需要决定你想要什么。无论是要使用Toggler还是使用dojo.style。如果希望继续使用切换器,则需要将不透明度设置为0,而不是显示。

切换器动画使用fadeIn和fadeOut函数更改节点的可见性。从而更新节点的不透明度。也就是说,节点仍然存在,只是不可见

使用切换开关显示时,将显示设置为“无”不会更新。此外,设置“显示”属性允许其他节点占据当前节点所占据的位置


所以,你需要决定你想要什么。无论是要使用Toggler还是使用dojo.style。如果希望继续切换,则需要将不透明度设置为0,而不是显示。

Oh!但之前我使用的是以前版本的dojo,它没有使用toggler.show,而是使用了dojo.widget.byId(…).show,它在没有显示的情况下工作得非常好。您在谈论哪个版本的dojo和什么类型的小部件?如果我考虑1.6,那么只有对话框类型的小部件会支持这一点。同样,如果dijit/widget支持显示和隐藏方法,那么在最新的verion中也可以这样做。我以前使用的版本是0.4.4,现在使用的版本是1.10Oh!但之前我使用的是以前版本的dojo,它没有使用toggler.show,而是使用了dojo.widget.byId(…).show,它在没有显示的情况下工作得非常好。您在谈论哪个版本的dojo和什么类型的小部件?如果我考虑1.6,那么只有对话框类型的小部件会支持这一点。同样,如果dijit/widget支持show和hide方法,那么在最新版本中也可以这样做
<html>
<head>

<script type="text/javascript" src="dojo/dojo.js">
</script>
<script language="javascript" type="text/javascript">
require(["dojo/dom","dojo/fx/Toggler","dojo/topic","dojo/domReady!"],

    function(dom,Toggler,topic){
var toggler = new Toggler ({
    node: "test"
});
alert("something");     
toggler.show();

});
</script>
</head>
<body>
<div id="test" style="display:none">This is just a test.</div>
</body>
</html>