道场/上。在Dojo 1.8 / 2.0中发出,widget.on等

时间:2013-01-27 03:13:49

标签: dojo

我想充分了解事件在Dojo中的运作方式。我实际上对Dojo 2.0的工作方式感兴趣 - 我现在使用的是1.8,但我真的只对使用/记录不推荐使用2.0的功能感兴趣。 现在......在_WidgetBase.js中,我读到了:

on: function(/*String|Function*/ type, /*Function*/ func){
  // For backwards compatibility, if there's an onType() method in the widget then connect to that.
                // Remove in 2.0.

这基本上意味着在不久的将来,小部件的开启基本上会:

  on: function(/*String|Function*/ type, /*Function*/ func){
            // Otherwise, just listen for the event on this.domNode.
            return this.own(on(this.domNode, type, func))[0];

哪个好。现在......在1.8的发行说明中,我看到了:

“窗口小部件事件,包括属性更改,将作为DOM树上的事件发出”

发布说明指出:http://livedocs.dojotoolkit.org/quickstart/events#widget-events-published-to-the-dom哪种“有点”解释事情,虽然文件似乎已经过时(它仍然谈论“普通对象”的方面)。

所以,我的问题是:是否有一个点/一堆页/票可以描述当前更新的方式,整个事件的工作原理是什么?

我目前的理解(对于Dojo 2.0):

  • on:100%委托给on.js
  • emit:当你运行randomWidget.on('something',function(){})时: -if randomWidget有'onsomething',它只会运行那个; < ---这会消失2.0吗? - 否则,它将委托给on()

所以,这都是关于理解dojo / on的。当我感到困惑的时候:阅读源代码,on.js似乎将功能委托给了小部件本身(我刚刚在上面写过,将简单地委托给2.0的dojo / on ......?!?)。除非委托给对象的位注定要消失......?

另外,我习惯用模板编写小部件,然后在我做data-dojo-attach-event =“onclick:_click”的地方添加项目,我确保在有人点击它时调用一个函数。使用新的on()系统,这会改变吗? (我的意思是,所有事件都传播到DOM,反之亦然吗?)

那么,有人可以对此有所了解吗?我现在感到有点不安,添加事件和做事,因为我不是百分之百确定发生了什么。

谢谢!

1 个答案:

答案 0 :(得分:1)

前一天的天啊...... 从那以后,我写了这个:

https://github.com/mercmobily/writeups/blob/master/dojo/widgets_containers_on.md

这几乎解释了很多!

Merc的。