1234567891011121314151617181920212223242526272829303132 |
- define("dojo/Evented", ["./aspect", "./on"], function(aspect, on){
- // summary:
- // The export of this module is a class that can be used as a mixin or base class,
- // to add on() and emit() methods to a class
- // for listening for events and emiting events:
- // |define(["dojo/Evented"], function(Evented){
- // | var EventedWidget = dojo.declare([Evented, dijit._Widget], {...});
- // | widget = new EventedWidget();
- // | widget.on("open", function(event){
- // | ... do something with event
- // | });
- // |
- // | widget.emit("open", {name:"some event", ...});
- "use strict";
- var after = aspect.after;
- function Evented(){
- }
- Evented.prototype = {
- on: function(type, listener){
- return on.parse(this, type, listener, function(target, type){
- return after(target, 'on' + type, listener, true);
- });
- },
- emit: function(type, event){
- var args = [this];
- args.push.apply(args, arguments);
- return on.emit.apply(on, args);
- }
- };
- return Evented;
- });
|