是否有针对dijit.TitlePane的“onExpand”事件或类似事件?

时间:2015-06-25 22:12:41

标签: dojo

当dojo-dijit的TitlePane扩展时,有没有办法获得事件回调?

我可以在TitlePane上捕获onClick。但是,这对我来说还不够。我有一个“全部展开”标题栏的按钮。当用户点击它时,我迭代所有TitlePanes并调用它的toggle()方法。发生这种情况时,不会触发onClick事件(如预期的那样)。我想知道在toggle()上是否有任何事件被触发。

或者任何其他智能方式来解决它也将不胜感激。

1 个答案:

答案 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
  });
});

您可能想知道,为什么不在切换()后立即完成工作,而不是经历触发/处理事件的痛苦。我需要在特定的闭包中处理事件,在那里我可以访问其他对象和变量。