Javascript 对dijit.layout.ContentPane使用onShow和onLoad以编程方式创建
我创建了一个ContentPane,既有声明性的,也有编程性的 声明性:Javascript 对dijit.layout.ContentPane使用onShow和onLoad以编程方式创建,javascript,dojo,Javascript,Dojo,我创建了一个ContentPane,既有声明性的,也有编程性的 声明性: <div dojoType="dijit.layout.ContentPane" id="abccp" href="abc.php?id=1" title="abc" onShow="do_abc()"> 我如何在编程ex中调用do_abc(),以便在技术上等同于您的第一个示例,您只需在传递给ContentPane构造函数的arguments对象中包含onShow:do_abc。(注意,do_abc后面没有括
<div dojoType="dijit.layout.ContentPane" id="abccp" href="abc.php?id=1" title="abc" onShow="do_abc()">
我如何在编程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
obj_abc = new dijit.layout.ContentPane(...);
obj_abc.connect(obj_abc, 'onShow', do_abc);