gpt4 book ai didi

javascript - 使用 onShow 和 onLoad 为 dijit.layout.ContentPane 创建程序

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:43 24 4
gpt4 key购买 nike

我创建了一个 ContentPane,既声明式又编程式。

声明式的:

<div dojoType="dijit.layout.ContentPane" id="abccp" href="abc.php?id=1" title="abc" onShow="do_abc()">

程序化

var obj_abc;
var abchref= "abc.php?id=1";
obj_abc = new dijit.layout.ContentPane({id:'abccp',title:'abc', href:abchref});

如何在程序化的 ex 中调用 do_abc()

最佳答案

为了在技术上等同于您的第一个示例,您只需在传递给 ContentPane 的构造函数的参数对象中包含 onShow: do_abc。 (注意 do_abc 后没有括号 - 我们感兴趣的是函数对象本身,而不是调用它的结果!)

但是,如果您想以更具扩展性的方式来做,那么我建议您这样做:

obj_abc = new dijit.layout.ContentPane(...);
obj_abc.connect(obj_abc, 'onShow', do_abc);

它所做的是执行连接,这样每当调用 obj_abconShow 方法时,将依次调用 do_abc 函数(尽管在 obj_abc 的上下文中,这大概就是您想要的)。您还将获得以下额外奖励:

  • 它不再破坏方法中最初可能存在的任何默认功能(尽管在这种情况下,onShow 是一个 stub ,意味着可以破坏)
  • 您可以通过这种方式将任意数量的函数连接到onShow
  • 连接将在小部件被销毁时自动断开(与您必须手动断开的 dojo.connect 相反)。

更多信息:

关于javascript - 使用 onShow 和 onLoad 为 dijit.layout.ContentPane 创建程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4626838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com