|
525
|
1 |
Event Infrastructure Change History |
|
|
2 |
=================================== |
|
|
3 |
|
|
|
4 |
3.10.3 |
|
|
5 |
------ |
|
|
6 |
|
|
|
7 |
* No changes. |
|
|
8 |
|
|
|
9 |
3.10.2 |
|
|
10 |
------ |
|
|
11 |
|
|
|
12 |
* Fixed `nodelist.on()` for rare custom module use cases. |
|
|
13 |
|
|
|
14 |
In certain rare custom module loading circumstances [#2533242, |
|
|
15 |
https://github.com/yui/yui3/pull/689] dom-core is attached after |
|
|
16 |
event-base, which resulted in the `YDOM = Y.DOM` module level reference |
|
|
17 |
being undefined [1]. |
|
|
18 |
|
|
|
19 |
This would break things like `nodelist.on()` which used the reference |
|
|
20 |
under the hood. |
|
|
21 |
|
|
|
22 |
[1] Added in 3.7.3, as part of the Win8 `isWindow()` fix. |
|
|
23 |
|
|
|
24 |
* Fixed DOM event facade, when Y instance was set to emitFacade:true. |
|
|
25 |
|
|
|
26 |
With the Y instance's emitFacade set to true, DOM event subscriptions |
|
|
27 |
would receive a Y.EventFacade instance instead of a Y.DOMEventFacade |
|
|
28 |
instance, and as a result target and currentTarget would be set to |
|
|
29 |
the Y instance, instead of a Y.Node instance. |
|
|
30 |
|
|
|
31 |
3.10.1 |
|
|
32 |
------ |
|
|
33 |
|
|
|
34 |
* No changes. |
|
|
35 |
|
|
|
36 |
3.10.0 |
|
|
37 |
------ |
|
|
38 |
|
|
|
39 |
* No changes. |
|
|
40 |
|
|
|
41 |
3.9.1 |
|
|
42 |
----- |
|
|
43 |
|
|
|
44 |
* No changes. |
|
|
45 |
|
|
|
46 |
3.9.0 |
|
|
47 |
----- |
|
|
48 |
|
|
|
49 |
* `delegate()` now silences events originating from disabled form controls in |
|
|
50 |
IE, like it does natively in other browsers. [#2532677] |
|
|
51 |
|
|
|
52 |
3.8.1 |
|
|
53 |
----- |
|
|
54 |
|
|
|
55 |
* No changes. |
|
|
56 |
|
|
|
57 |
3.8.0 |
|
|
58 |
----- |
|
|
59 |
|
|
|
60 |
* No changes. |
|
|
61 |
|
|
|
62 |
3.7.3 |
|
|
63 |
----- |
|
|
64 |
|
|
|
65 |
* Changed onbeforeactivate feature test to account for Win 8 packaged Apps, which |
|
|
66 |
don't allow inline JS code in innerHTML. |
|
|
67 |
|
|
|
68 |
http://msdn.microsoft.com/en-us/library/windows/apps/hh465388.aspx |
|
|
69 |
|
|
|
70 |
3.7.2 |
|
|
71 |
----- |
|
|
72 |
|
|
|
73 |
* No changes. |
|
|
74 |
|
|
|
75 |
3.7.1 |
|
|
76 |
----- |
|
|
77 |
|
|
|
78 |
* No changes. |
|
|
79 |
|
|
|
80 |
3.7.0 |
|
|
81 |
----- |
|
|
82 |
|
|
|
83 |
* Changed event-synthetic, to support CustomEvent performance optimizations. |
|
|
84 |
|
|
|
85 |
Mainly the deprecation of CustomEvent subscribers and afters instance properties, |
|
|
86 |
which event-synthetic was referring to directly. The direct reference was replaced |
|
|
87 |
by a public API method call. |
|
|
88 |
|
|
|
89 |
See src/event-custom/HISTORY.md for more details about the deprecated properties. |
|
|
90 |
|
|
|
91 |
* `event-tap` was migrated from Gallery and it supports "fast-click" on touch |
|
|
92 |
devices. |
|
|
93 |
|
|
|
94 |
* Added try/catch around the internal window unload listener event-base adds, |
|
|
95 |
so that YUI works in Chrome Packaged Apps. They don't support unload, |
|
|
96 |
but still have a window.onunload, so no real way to feature test without |
|
|
97 |
a try/catch anyway. |
|
|
98 |
|
|
|
99 |
3.6.0 |
|
|
100 |
----- |
|
|
101 |
|
|
|
102 |
* No changes. |
|
|
103 |
|
|
|
104 |
3.5.1 |
|
|
105 |
----- |
|
|
106 |
|
|
|
107 |
* No changes. |
|
|
108 |
|
|
|
109 |
3.5.0 |
|
|
110 |
----- |
|
|
111 |
* `event-simulate` references to `window` replaced with `Y.config.win` |
|
|
112 |
[#2531223] |
|
|
113 |
* `event-resize` no longer throws an exception in IE [#2531310] |
|
|
114 |
* "avilable" and "contentready" handlers that throw exceptions no longer |
|
|
115 |
result in infinite polling [#2531375] |
|
|
116 |
* Added `event-touch`, `event-flick`, `event-move`, and `event-valuechange` to |
|
|
117 |
the `event` virtual rollup in accordance with the docs. |
|
|
118 |
* 'key' event does a better job parsing character filters. Uses `e.which` |
|
|
119 |
instead of `e.keyCode` or `e.charCode`. |
|
|
120 |
* `node.delegate('focus', fn, '.not-focusable')` now works. Properly supports |
|
|
121 |
delegation where the filter matches non-focusable parent nodes of the |
|
|
122 |
focused target. Same for blur. [#2531334] (`event-focus`) |
|
|
123 |
* `node.delegate('focus', fn, filterThatMatchesNode); node.focus();` now |
|
|
124 |
works. [#2531734] |
|
|
125 |
|
|
|
126 |
3.4.1 |
|
|
127 |
----- |
|
|
128 |
* Calling Y.on('syntheticEvent', callback) without a context/selector argument |
|
|
129 |
now defaults to `window` (or the global object) [Ticket #2530081] |
|
|
130 |
|
|
|
131 |
* event-resize, a.k.a. Y.on('windowresize', ...) migrated to synthetic event |
|
|
132 |
infrastructure. Now detachable, etc. Also properly throttles the resize |
|
|
133 |
event on newer Gecko engines. That browser sniff was old! [Ticket #2530805] |
|
|
134 |
|
|
|
135 |
3.4.0 |
|
|
136 |
----- |
|
|
137 |
* `event-outside` added for "outside" events. |
|
|
138 |
|
|
|
139 |
* `Y.Event.define(name)` adds name to `DOM_EVENTS` whitelist. Accepts event |
|
|
140 |
name string or array of string names. |
|
|
141 |
|
|
|
142 |
* `event-hover` properly pulls in required module `event-mouseenter`. |
|
|
143 |
|
|
|
144 |
* DOM event subscriptions are now removed and objects cleaned up after last |
|
|
145 |
subscription is detached; same for synthetic events. |
|
|
146 |
|
|
|
147 |
* `key` synthetic event migrated to official synth infrastructure; and now |
|
|
148 |
supports delegation. |
|
|
149 |
|
|
|
150 |
* `key` event spec param now supports letters and named keys. E.g.: |
|
|
151 |
`'enter+ctrl' == '13+ctrl'`, `'up:a' == 'up:65'` and `'A' == '65+shift'`. |
|
|
152 |
|
|
|
153 |
* Added experimental config `YUI({ lazyEventFacade: true })` that triggers a |
|
|
154 |
mode for DOM EventFacades in IE8 to use getters to access event properties |
|
|
155 |
that involve any calculation, such as `e.target` and `e.currentTarget`; this |
|
|
156 |
should also improve performance. |
|
|
157 |
|
|
|
158 |
* `mouseenter` and `mouseleave` events now filter the native event rather than |
|
|
159 |
the generated `DOMEventFacades` for `mouseover`/`mouseout`. This results in |
|
|
160 |
fewer calls to `Y.one` (`e.target`, `currentTarget`, `relatedTarget`) as |
|
|
161 |
well, so should improve performance. |
|
|
162 |
|
|
|
163 |
* Added `onceAfter()` method to do a self-detaching `after()` subscription. |
|
|
164 |
[Ticket #2529464] |
|
|
165 |
|
|
|
166 |
* `Y.on(type, callback, HTMLElement[], COMPAT)` subscriptions to attach to |
|
|
167 |
multiple elements in one call now correctly use native DOM elements instead |
|
|
168 |
of Nodes for all subscriptions. [Ticket #2529807] |
|
|
169 |
|
|
|
170 |
* Plugged the leaked global `GLOBAL_ENV`. [Ticket #2530227] |
|
|
171 |
|
|
|
172 |
* Fixed synth architecture to properly resubscribe to synths that use |
|
|
173 |
`processArgs` if the target is not available at the time of subscription. |
|
|
174 |
[Ticket #2530293] |
|
|
175 |
|
|
|
176 |
3.3.0 |
|
|
177 |
----- |
|
|
178 |
|
|
|
179 |
* Added support for `delegate({ click: fn, keyup: fn2 }, …)` and |
|
|
180 |
`delegate(['click', 'keyup'], fn, …)`. |
|
|
181 |
|
|
|
182 |
* Delegation containers are now potential matches for the filter. |
|
|
183 |
|
|
|
184 |
* Nested delegate matches will now have callback executed for all matching |
|
|
185 |
targets in bubbling order. |
|
|
186 |
|
|
|
187 |
* `e.stopPropagation()` in nested delegate matches now works as expected. |
|
|
188 |
|
|
|
189 |
* The raw DOM event is no longer double wrapped (i.e. was: `e._event._event`). |
|
|
190 |
|
|
|
191 |
* `event-focus` now uses XHTML-friendly feature test to fork for IE. |
|
|
192 |
|
|
|
193 |
* New `event-hover` module providing `node.on('hover', in, out)`. |
|
|
194 |
|
|
|
195 |
* `e.button`/`e.which` normalization. |
|
|
196 |
|
|
|
197 |
* `e.which` normalized for key operations as well. |
|
|
198 |
|
|
|
199 |
* Split out IE-specific code into `event-base-ie` conditional module. |
|
|
200 |
|
|
|
201 |
3.2.0 |
|
|
202 |
----- |
|
|
203 |
|
|
|
204 |
* Added event and facade support for touch. |
|
|
205 |
|
|
|
206 |
* Synthetic event infrastructure rebuilt. Changes include: |
|
|
207 |
|
|
|
208 |
* Support for delegation. |
|
|
209 |
|
|
|
210 |
* Passing `DOMEventFacade` to `notifier.fire(e)` now recommended. |
|
|
211 |
|
|
|
212 |
* Fixed issue where firing the notifier from inside DOM event subs would |
|
|
213 |
result in duplicate synth sub execution if the same synth was subscribed |
|
|
214 |
multiple times on the same Node. |
|
|
215 |
|
|
|
216 |
* Synths can now be detached with `node.purge(t|f, 'synthName')`. |
|
|
217 |
|
|
|
218 |
* `Event.define(type, config, *force*)` third arg added to override existing |
|
|
219 |
events. Only use this if you really know what you're doing. |
|
|
220 |
|
|
|
221 |
* Changed `allowDups` to `preventDups`, `true` by default to mimic existing |
|
|
222 |
behavior elsewhere in the event system. |
|
|
223 |
|
|
|
224 |
* `delegate()` now defers to synthetic event def more intelligently. |
|
|
225 |
|
|
|
226 |
* Added support for passing filter function to delegate. |
|
|
227 |
|
|
|
228 |
* `delegate()` now executes callback for each filter match up the bubble path. |
|
|
229 |
|
|
|
230 |
* Added detach category support to `delegate()`. |
|
|
231 |
|
|
|
232 |
* Migrate `mouseenter`, `mouseleave`, `focus`, and `blur` to `Event.define`. |
|
|
233 |
|
|
|
234 |
* `focus` and `blur` now guarantee execution order of subs matches bubble |
|
|
235 |
order when multiple delegates are created from different levels. |
|
|
236 |
|
|
|
237 |
* `event-synthetic` added to 'event' rollup module. |
|
|
238 |
|
|
|
239 |
3.1.1 |
|
|
240 |
----- |
|
|
241 |
|
|
|
242 |
* fired `fireOnce()` listeners are executed synchronously. |
|
|
243 |
|
|
|
244 |
3.1.0 |
|
|
245 |
----- |
|
|
246 |
|
|
|
247 |
* Removed deprecated `delegate` custom event. As of 3.1.0 use the `delegate()` |
|
|
248 |
method on a `Node` instance or `Y` instance. |
|
|
249 |
|
|
|
250 |
* Updated the `event-focus` submodule so that the specialized `focus` and |
|
|
251 |
`blur` events that enable the `focus` and `blur` events to bubble do not |
|
|
252 |
apply when adding `focus` and `blur` events to the `window` object. |
|
|
253 |
|
|
|
254 |
* Synthetic event creation API added. |
|
|
255 |
|
|
|
256 |
* `delegate` enhancements. |
|
|
257 |
|
|
|
258 |
* `unload` event fix. |
|
|
259 |
|
|
|
260 |
* Compatibility with Firefox's untouchable anonymous `div`. |
|
|
261 |
|
|
|
262 |
3.0.0 |
|
|
263 |
----- |
|
|
264 |
|
|
|
265 |
* Added `onreadystatechange` fork in `domready` to handle the event in IE when |
|
|
266 |
YUI is hosted in an `iframe`. |
|
|
267 |
|
|
|
268 |
* Added `mousewheel` support. |
|
|
269 |
|
|
|
270 |
* Added `Y.delegate()` function that is a bit easier to use than |
|
|
271 |
`Y.on('delegate', …)`. |
|
|
272 |
|
|
|
273 |
* Default scope of `mouseenter` and `mouseleave` events is the `Node` instance |
|
|
274 |
to which the listener is attached. |
|
|
275 |
|
|
|
276 |
* Default scope of delegated event listeners is the `Node` instance that |
|
|
277 |
matched the supplied CSS selector. |
|
|
278 |
|
|
|
279 |
* All special DOM event handlers (`focus`, `blur`, `mousewheel`, `resize`, |
|
|
280 |
`delegate`, etc.) are broken down into submodules. Core DOM event |
|
|
281 |
functionality is provided in event-base.js, and all of the functionality is |
|
|
282 |
rolled into event.js. |
|
|
283 |
|
|
|
284 |
* Additional Safari key remapping. |
|
|
285 |
|
|
|
286 |
* Special DOM events can now be routed through `delegate()`. |
|
|
287 |
|
|
|
288 |
* `Y.on()` can target `Node` and `NodeList` references correctly. |
|
|
289 |
|
|
|
290 |
* Fixed `onAvailable()` lazy DOM listener detach handles. |
|
|
291 |
|
|
|
292 |
* When configured to return a detach handle, a single object is always |
|
|
293 |
returned. Previously requests that resolved to multiple listeners returned |
|
|
294 |
an array. |
|
|
295 |
|
|
|
296 |
3.0.0beta1 |
|
|
297 |
---------- |
|
|
298 |
|
|
|
299 |
* DOM event, custom event, and simulate event moved to separate modules. |
|
|
300 |
|
|
|
301 |
* Added an event for DOM event delegation. It only fires if the target or its |
|
|
302 |
descendants match a supplied selector. |
|
|
303 |
|
|
|
304 |
Y.on('delegate', fn, el, 'click', 'selector', …) |
|
|
305 |
|
|
|
306 |
The event facade sets the following properties: |
|
|
307 |
|
|
|
308 |
* `target`: the target of the event. |
|
|
309 |
* `currentTarget`: the element that the selector matched. |
|
|
310 |
* `container`: the bound element (the delegation container). |
|
|
311 |
|
|
|
312 |
* Added `mouseenter`/`mouseleave` events: |
|
|
313 |
|
|
|
314 |
* `Y.on('mouseenter', fn, el, 'click', 'selector', …)` |
|
|
315 |
* `Y.on('mouseleave', fn, el, 'click', 'selector', …)` |
|
|
316 |
|
|
|
317 |
* Added `Y.on('windowresize', fn)`, which attempts to normalize when the event |
|
|
318 |
fires across all browsers (once at the end of the resize rather than |
|
|
319 |
continuously during the resize). |
|
|
320 |
|
|
|
321 |
* Fixed `unsubscribeAll()` return value. |
|
|
322 |
|
|
|
323 |
* Added ability to skip facade creation where performance is a concern. |
|
|
324 |
|
|
|
325 |
* Moved `DOMReady` core to `yui-base`. |
|
|
326 |
|
|
|
327 |
* Focus/blur abstraction works in Opera when the bound element is the target. |
|
|
328 |
|
|
|
329 |
* `purgeElement` only reads element guids, it does not create new ones for |
|
|
330 |
elements without one. |
|
|
331 |
|
|
|
332 |
* `Event.attach()` returns a single handle if the result from collection |
|
|
333 |
processing is a single item. |
|
|
334 |
|
|
|
335 |
3.0.0pr2 |
|
|
336 |
-------- |
|
|
337 |
|
|
|
338 |
* Fixed IE notification error when no arguments are supplied. |
|
|
339 |
|
|
|
340 |
* Added `event-simulate`. |
|
|
341 |
|
|
|
342 |
* `getListeners()` works when the element has no listeners defined. |
|
|
343 |
|
|
|
344 |
* `Event.addListener()` removed. Exists only in compat layer. |
|
|
345 |
|
|
|
346 |
* `addListerer()` triggers 2.x event behavior. |
|
|
347 |
|
|
|
348 |
* Removed extra undefined parameter passed to DOM event listeners. |
|
|
349 |
|
|
|
350 |
* Compat layer contains `Event.on()`. |
|
|
351 |
|
|
|
352 |
* Event adapter support added to `Y.on()`. |
|
|
353 |
|
|
|
354 |
* Added `focus` and `blur` event adaptors (support for propagation of these |
|
|
355 |
events.) |
|
|
356 |
|
|
|
357 |
* publish and subscribe support an object for the type, allowing for multiple |
|
|
358 |
events/subscriptions. |
|
|
359 |
|
|
|
360 |
* subscriber failures throw an error by default rather than log. |
|
|
361 |
|
|
|
362 |
* subscriber failures are not routed through `Y.fail` in order to improve the |
|
|
363 |
debug experience. |
|
|
364 |
|
|
|
365 |
* New facades created every `fire()`. |
|
|
366 |
|
|
|
367 |
* `before()` method re-added to `EventTarget`, which delegates to |
|
|
368 |
`Do.before()` or `subscribe()`. |
|
|
369 |
|
|
|
370 |
* `EventTarget.after()` will delegate to `Do.after()` if type is a function. |
|
|
371 |
|
|
|
372 |
* Added keylistener: `Y.on('key', fn, element, 'down:13,65+ctrl+shift')`. |
|
|
373 |
|
|
|
374 |
* `event:ready` event deprecated in favor of `domready`. |
|
|
375 |
|
|
|
376 |
3.0.0pr1 |
|
|
377 |
-------- |
|
|
378 |
|
|
|
379 |
* Initial Release. |