当dojo-dijit的TitlePane扩展时,有没有办法获得事件回调?
我可以在TitlePane上捕获onClick。但是,这对我来说还不够。我有一个“全部展开”标题栏的按钮。当用户点击它时,我迭代所有TitlePanes并调用它的toggle()方法。发生这种情况时,不会触发onClick事件(如预期的那样)。我想知道在toggle()上是否有任何事件被触发。
或者任何其他智能方式来解决它也将不胜感激。
答案 0 :(得分:0)
详细查看文档之后,我认为在切换/展开期间没有触发任何内置事件。我最终解雇了一个自定义事件,这帮助我得到了我想要的东西。
这个答案帮助了我 - https://stackoverflow.com/a/12852043/3810374
基本上,
首先使用isOpen()方法,确保标题窗格尚未展开。然后调用toggle()方法,并触发这样的自定义事件:
require(["dojo/on"], function(on){
// Send event
on.emit(target, "onExpand", {
bubbles: true,
cancelable: true
});
});
然后处理事件:
require(["dojo/on"], function(on){
// register event handler
on(target, "onExpand", function(e){
// handle event
});
});
您可能想知道,为什么不在切换()后立即完成工作,而不是经历触发/处理事件的痛苦。我需要在特定的闭包中处理事件,在那里我可以访问其他对象和变量。