我有一个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});
如何在程序化前的
中调用do_abc()答案 0 :(得分:8)
在技术上等同于您的第一个示例,您只需在传递给ContentPane构造函数的arguments对象中包含onShow: do_abc
。 (注意do_abc
之后没有括号 - 我们对函数对象本身感兴趣,而不是调用它的结果!)
但是,如果您想以更具可扩展性的方式进行,那么我建议这样做:
obj_abc = new dijit.layout.ContentPane(...);
obj_abc.connect(obj_abc, 'onShow', do_abc);
这样做是为了执行一个连接,这样每当调用obj_abc
的{{1}}方法时,onShow
函数将被调用(尽管在{{1}的上下文中无论如何,这大概都是你想要的)。您还可以获得以下额外奖金:
do_abc
是一个意味着可以破坏的存根)obj_abc
onShow
)。了解更多信息: