50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
define("dijit/_OnDijitClickMixin", [
|
|
"dojo/on",
|
|
"dojo/_base/array", // array.forEach
|
|
"dojo/keys", // keys.ENTER keys.SPACE
|
|
"dojo/_base/declare", // declare
|
|
"dojo/has", // has("dom-addeventlistener")
|
|
"dojo/_base/unload", // unload.addOnWindowUnload
|
|
"dojo/_base/window", // win.doc.addEventListener win.doc.attachEvent win.doc.detachEvent
|
|
"./a11yclick"
|
|
], function(on, array, keys, declare, has, unload, win, a11yclick){
|
|
|
|
// module:
|
|
// dijit/_OnDijitClickMixin
|
|
|
|
var ret = declare("dijit._OnDijitClickMixin", null, {
|
|
connect: function(
|
|
/*Object|null*/ obj,
|
|
/*String|Function*/ event,
|
|
/*String|Function*/ method){
|
|
// summary:
|
|
// Connects specified obj/event to specified method of this object
|
|
// and registers for disconnect() on widget destroy.
|
|
// description:
|
|
// Provide widget-specific analog to connect.connect, except with the
|
|
// implicit use of this widget as the target object.
|
|
// This version of connect also provides a special "ondijitclick"
|
|
// event which triggers on a click or space or enter keyup.
|
|
// Events connected with `this.connect` are disconnected upon
|
|
// destruction.
|
|
// returns:
|
|
// A handle that can be passed to `disconnect` in order to disconnect before
|
|
// the widget is destroyed.
|
|
// example:
|
|
// | var btn = new Button();
|
|
// | // when foo.bar() is called, call the listener we're going to
|
|
// | // provide in the scope of btn
|
|
// | btn.connect(foo, "bar", function(){
|
|
// | console.debug(this.toString());
|
|
// | });
|
|
// tags:
|
|
// protected
|
|
|
|
return this.inherited(arguments, [obj, event == "ondijitclick" ? a11yclick : event, method]);
|
|
}
|
|
});
|
|
|
|
ret.a11yclick = a11yclick; // back compat
|
|
|
|
return ret;
|
|
});
|