javascript - 切换 Dojo dijit 的显示

标签 javascript dojo

我正在尝试在 Dojo 中实现 div dijit 的基本显示/隐藏。基于我使用过的其他 JavaScript 框架,这应该很容易,但我发现充其量也很难。

代码来自

<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>

下面是我在正文中的代码。

<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>

我现在看到的行为是 div 在单击按钮后立即显示,但随后再次隐藏。我做错了什么?

最佳答案

我认为你的显示/隐藏逻辑是倒过来的?另外,我认为“显示”来自非常非常旧的 Dojo 版本。尝试只查看样式(请注意,当我检查“无”时,这再次翻转了逻辑)

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

有一个例子 in the docs它使用 dojo.connect 来实现相同的效果。

关于javascript - 切换 Dojo dijit 的显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088839/

相关文章:

javascript - 获取 Dojo 单选按钮值?

javascript - 在自定义 dojo amd 模块中的 xhr 请求后调用同级方法

javascript - express.js,如果删除下一个参数,错误处理程序将不起作用

javascript - Grails javascript 文件重新加载

javascript error : periodLookup[periodStr] is undefined, 为什么抛出这个错误?

javascript - 将 dojo/Deferred 与异步函数和查询结合使用

javascript - YUI 压缩器是否支持多个文件的捆绑?

javascript - 使用另一个 JavaScript 对象的值初始化一个 JavaScript 对象

javascript - 如何使用 Javascript 格式化 HTML5 音频 currentTime 属性

javascript - 延迟链接 - 然后在上一个调用因错误完成时调用成功回调