我有一个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构造函数的arguments对象中包含onShow: do_abc
即可。 (请注意do_abc
后没有括号-我们对函数对象本身感兴趣,而不是调用它的结果!)
但是,如果您想以某种更可扩展的方式进行操作,则建议这样做:
obj_abc = new dijit.layout.ContentPane(...);
obj_abc.connect(obj_abc, 'onShow', do_abc);
这是执行一个联播,以便每当调用
obj_abc
的onShow
方法时,就会依次调用do_abc
函数(尽管在obj_abc
的上下文中,无论如何这都是您想要的)。您还将获得以下额外奖励:onShow
是一个意味着可以破坏的存根)onShow
。dojo.connect
相反,您必须手动将其断开)。 想要查询更多的信息: