forked from yui/yui3
/
event-facade-dom.js.html
473 lines (419 loc) · 42.8 KB
/
event-facade-dom.js.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API: event event-facade-dom.js (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
<link rel="stylesheet" type="text/css" href="assets/api.css" />
<script type="text/javascript" src="assets/api-js"></script>
<script type="text/javascript" src="assets/ac-js"></script>
</head>
<body id="yahoo-com">
<div id="doc3" class="yui-t2">
<div id="hd">
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
<h3>event <span class="subtitle">3.0.0</span></h3>
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
> <a href="./module_event.html" title="event">event</a>
> event-facade-dom.js (source view)
<form onsubmit="return false">
<div id="propertysearch">
Search: <input autocomplete="off" id="searchinput" />
<div id="searchresults">
</div>
</div>
</form>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
<fieldset>
<legend>Filters</legend>
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
</fieldset>
</form>
<div id="srcout">
<style>
#doc3 .classopts { display:none; }
</style>
<div class="highlight" ><pre><span class="o">(</span><span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * Custom event engine, DOM event listener abstraction layer, synthetic DOM </span>
<span class="c"> * events.</span>
<span class="c"> * @module event</span>
<span class="c"> * @submodule event-base</span>
<span class="c"> */</span>
<span class="c">/**</span>
<span class="c"> * Wraps a DOM event, properties requiring browser abstraction are</span>
<span class="c"> * fixed here. Provids a security layer when required.</span>
<span class="c"> * @class DOMEventFacade</span>
<span class="c"> * @param ev {Event} the DOM event</span>
<span class="c"> * @param currentTarget {HTMLElement} the element the listener was attached to</span>
<span class="c"> * @param wrapper {Event.Custom} the custom event wrapper for this DOM event</span>
<span class="c"> */</span>
<span class="c">/*</span>
<span class="c"> * @TODO constants? LEFTBUTTON, MIDDLEBUTTON, RIGHTBUTTON, keys</span>
<span class="c"> */</span>
<span class="c">/*</span>
<span class="c"></span>
<span class="c">var whitelist = {</span>
<span class="c"> altKey : 1,</span>
<span class="c"> // "button" : 1, // we supply</span>
<span class="c"> // "bubbles" : 1, // needed?</span>
<span class="c"> // "cancelable" : 1, // needed? </span>
<span class="c"> // "charCode" : 1, // we supply</span>
<span class="c"> cancelBubble : 1,</span>
<span class="c"> // "currentTarget" : 1, // we supply</span>
<span class="c"> ctrlKey : 1,</span>
<span class="c"> clientX : 1, // needed?</span>
<span class="c"> clientY : 1, // needed?</span>
<span class="c"> detail : 1, // not fully implemented</span>
<span class="c"> // "fromElement" : 1,</span>
<span class="c"> keyCode : 1,</span>
<span class="c"> // "height" : 1, // needed?</span>
<span class="c"> // "initEvent" : 1, // need the init events?</span>
<span class="c"> // "initMouseEvent" : 1,</span>
<span class="c"> // "initUIEvent" : 1,</span>
<span class="c"> // "layerX" : 1, // needed?</span>
<span class="c"> // "layerY" : 1, // needed?</span>
<span class="c"> metaKey : 1,</span>
<span class="c"> // "modifiers" : 1, // needed?</span>
<span class="c"> // "offsetX" : 1, // needed?</span>
<span class="c"> // "offsetY" : 1, // needed?</span>
<span class="c"> // "preventDefault" : 1, // we supply</span>
<span class="c"> // "reason" : 1, // IE proprietary</span>
<span class="c"> // "relatedTarget" : 1,</span>
<span class="c"> // "returnValue" : 1, // needed?</span>
<span class="c"> shiftKey : 1,</span>
<span class="c"> // "srcUrn" : 1, // IE proprietary</span>
<span class="c"> // "srcElement" : 1,</span>
<span class="c"> // "srcFilter" : 1, IE proprietary</span>
<span class="c"> // "stopPropagation" : 1, // we supply</span>
<span class="c"> // "target" : 1,</span>
<span class="c"> // "timeStamp" : 1, // needed?</span>
<span class="c"> // "toElement" : 1,</span>
<span class="c"> type : 1,</span>
<span class="c"> // "view" : 1,</span>
<span class="c"> // "which" : 1, // we supply</span>
<span class="c"> // "width" : 1, // needed?</span>
<span class="c"> x : 1,</span>
<span class="c"> y : 1</span>
<span class="c">},</span>
<span class="c"></span>
<span class="c">*/</span>
<span class="k">var</span> <span class="nx">ua</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">UA</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * webkit key remapping required for Safari < 3.1</span>
<span class="c"> * @property webkitKeymap</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">webkitKeymap</span> <span class="o">=</span> <span class="o">{</span>
<span class="m">63232</span><span class="o">:</span> <span class="m">38</span><span class="o">,</span> <span class="c">// up</span>
<span class="c"></span> <span class="m">63233</span><span class="o">:</span> <span class="m">40</span><span class="o">,</span> <span class="c">// down</span>
<span class="c"></span> <span class="m">63234</span><span class="o">:</span> <span class="m">37</span><span class="o">,</span> <span class="c">// left</span>
<span class="c"></span> <span class="m">63235</span><span class="o">:</span> <span class="m">39</span><span class="o">,</span> <span class="c">// right</span>
<span class="c"></span> <span class="m">63276</span><span class="o">:</span> <span class="m">33</span><span class="o">,</span> <span class="c">// page up</span>
<span class="c"></span> <span class="m">63277</span><span class="o">:</span> <span class="m">34</span><span class="o">,</span> <span class="c">// page down</span>
<span class="c"></span> <span class="m">25</span><span class="o">:</span> <span class="m">9</span><span class="o">,</span> <span class="c">// SHIFT-TAB (Safari provides a different key code in</span>
<span class="c"></span> <span class="c">// this case, even though the shiftKey modifier is set)</span>
<span class="c"></span> <span class="m">63272</span><span class="o">:</span> <span class="m">46</span><span class="o">,</span> <span class="c">// delete</span>
<span class="c"></span> <span class="m">63273</span><span class="o">:</span> <span class="m">36</span><span class="o">,</span> <span class="c">// home</span>
<span class="c"></span> <span class="m">63275</span><span class="o">:</span> <span class="m">35</span> <span class="c">// end</span>
<span class="c"></span> <span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Returns a wrapped node. Intended to be used on event targets,</span>
<span class="c"> * so it will return the node's parent if the target is a text</span>
<span class="c"> * node.</span>
<span class="c"> *</span>
<span class="c"> * If accessing a property of the node throws an error, this is</span>
<span class="c"> * probably the anonymous div wrapper Gecko adds inside text</span>
<span class="c"> * nodes. This likely will only occur when attempting to access</span>
<span class="c"> * the relatedTarget. In this case, we now return null because</span>
<span class="c"> * the anonymous div is completely useless and we do not know</span>
<span class="c"> * what the related target was because we can't even get to</span>
<span class="c"> * the element's parent node.</span>
<span class="c"> *</span>
<span class="c"> * @method resolve</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">resolve</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">n</span><span class="o">)</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">n</span> <span class="o">&&</span> <span class="m">3</span> <span class="o">==</span> <span class="nx">n</span><span class="o">.</span><span class="nx">nodeType</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">n</span> <span class="o">=</span> <span class="nx">n</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">one</span><span class="o">(</span><span class="nx">n</span><span class="o">);</span>
<span class="o">};</span>
<span class="c">// provide a single event with browser abstractions resolved</span>
<span class="c">//</span>
<span class="c">// include all properties for both browers?</span>
<span class="c">// include only DOM2 spec properties?</span>
<span class="c">// provide browser-specific facade?</span>
<span class="c"></span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">DOMEventFacade</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">ev</span><span class="o">,</span> <span class="nx">currentTarget</span><span class="o">,</span> <span class="nx">wrapper</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">wrapper</span> <span class="o">=</span> <span class="nx">wrapper</span> <span class="o">||</span> <span class="o">{};</span>
<span class="k">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">ev</span><span class="o">,</span> <span class="nx">ot</span> <span class="o">=</span> <span class="nx">currentTarget</span><span class="o">,</span> <span class="nx">d</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">doc</span><span class="o">,</span> <span class="nx">b</span> <span class="o">=</span> <span class="nx">d</span><span class="o">.</span><span class="nx">body</span><span class="o">,</span>
<span class="nx">x</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">pageX</span><span class="o">,</span> <span class="nx">y</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">pageY</span><span class="o">,</span> <span class="nx">c</span><span class="o">,</span> <span class="nx">t</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">altKey</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">altKey</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">ctrlKey</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">ctrlKey</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">metaKey</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">metaKey</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">shiftKey</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">shiftKey</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">type</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clientX</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">clientX</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clientY</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">clientY</span><span class="o">;</span>
<span class="c">//////////////////////////////////////////////////////</span>
<span class="c"></span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">x</span> <span class="o">&&</span> <span class="m">0</span> <span class="o">!==</span> <span class="nx">x</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">x</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">clientX</span> <span class="o">||</span> <span class="m">0</span><span class="o">;</span>
<span class="nx">y</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">clientY</span> <span class="o">||</span> <span class="m">0</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">x</span> <span class="o">+=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">max</span><span class="o">(</span><span class="nx">d</span><span class="o">.</span><span class="nx">documentElement</span><span class="o">.</span><span class="nx">scrollLeft</span><span class="o">,</span> <span class="nx">b</span><span class="o">.</span><span class="nx">scrollLeft</span><span class="o">);</span>
<span class="nx">y</span> <span class="o">+=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">max</span><span class="o">(</span><span class="nx">d</span><span class="o">.</span><span class="nx">documentElement</span><span class="o">.</span><span class="nx">scrollTop</span><span class="o">,</span> <span class="nx">b</span><span class="o">.</span><span class="nx">scrollTop</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_yuifacade</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The native event</span>
<span class="c"> * @property _event</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_event</span> <span class="o">=</span> <span class="nx">e</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The X location of the event on the page (including scroll)</span>
<span class="c"> * @property pageX</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">pageX</span> <span class="o">=</span> <span class="nx">x</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The Y location of the event on the page (including scroll)</span>
<span class="c"> * @property pageY</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">pageY</span> <span class="o">=</span> <span class="nx">y</span><span class="o">;</span>
<span class="c">//////////////////////////////////////////////////////</span>
<span class="c"></span>
<span class="nx">c</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">keyCode</span> <span class="o">||</span> <span class="nx">e</span><span class="o">.</span><span class="nx">charCode</span> <span class="o">||</span> <span class="m">0</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">c</span> <span class="k">in</span> <span class="nx">webkitKeymap</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">c</span> <span class="o">=</span> <span class="nx">webkitKeymap</span><span class="o">[</span><span class="nx">c</span><span class="o">];</span>
<span class="o">}</span>
<span class="c">/**</span>
<span class="c"> * The keyCode for key events. Uses charCode if keyCode is not available</span>
<span class="c"> * @property keyCode</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">keyCode</span> <span class="o">=</span> <span class="nx">c</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The charCode for key events. Same as keyCode</span>
<span class="c"> * @property charCode</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">charCode</span> <span class="o">=</span> <span class="nx">c</span><span class="o">;</span>
<span class="c">//////////////////////////////////////////////////////</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * The button that was pushed.</span>
<span class="c"> * @property button</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">button</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">which</span> <span class="o">||</span> <span class="nx">e</span><span class="o">.</span><span class="nx">button</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The button that was pushed. Same as button.</span>
<span class="c"> * @property which</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">which</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">button</span><span class="o">;</span>
<span class="c">//////////////////////////////////////////////////////</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Node reference for the targeted element</span>
<span class="c"> * @propery target</span>
<span class="c"> * @type Node</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">target</span> <span class="o">=</span> <span class="nx">resolve</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">target</span> <span class="o">||</span> <span class="nx">e</span><span class="o">.</span><span class="nx">srcElement</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Node reference for the element that the listener was attached to.</span>
<span class="c"> * @propery currentTarget</span>
<span class="c"> * @type Node</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">currentTarget</span> <span class="o">=</span> <span class="nx">resolve</span><span class="o">(</span><span class="nx">ot</span><span class="o">);</span>
<span class="nx">t</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">relatedTarget</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">t</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"mouseout"</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">t</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">toElement</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"mouseover"</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">t</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">fromElement</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="c">/**</span>
<span class="c"> * Node reference to the relatedTarget</span>
<span class="c"> * @propery relatedTarget</span>
<span class="c"> * @type Node</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">relatedTarget</span> <span class="o">=</span> <span class="nx">resolve</span><span class="o">(</span><span class="nx">t</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Number representing the direction and velocity of the movement of the mousewheel.</span>
<span class="c"> * Negative is down, the higher the number, the faster. Applies to the mousewheel event.</span>
<span class="c"> * @property wheelDelta</span>
<span class="c"> * @type int</span>
<span class="c"> */</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"mousewheel"</span> <span class="o">||</span> <span class="nx">e</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"DOMMouseScroll"</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">wheelDelta</span> <span class="o">=</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">detail</span><span class="o">)</span> <span class="o">?</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">detail</span> <span class="o">*</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">:</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">round</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">wheelDelta</span> <span class="o">/</span> <span class="m">80</span><span class="o">)</span> <span class="o">||</span> <span class="o">((</span><span class="nx">e</span><span class="o">.</span><span class="nx">wheelDelta</span> <span class="o"><</span> <span class="m">0</span><span class="o">)</span> <span class="o">?</span> <span class="o">-</span><span class="m">1</span> <span class="o">:</span> <span class="m">1</span><span class="o">);</span>
<span class="o">}</span>
<span class="c">//////////////////////////////////////////////////////</span>
<span class="c"></span> <span class="c">// methods</span>
<span class="c"></span>
<span class="c">/**</span>
<span class="c"> * Stops the propagation to the next bubble target</span>
<span class="c"> * @method stopPropagation</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">stopPropagation</span> <span class="o">=</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">stopPropagation</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">stopPropagation</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">cancelBubble</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="m">1</span><span class="o">;</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c"> * Stops the propagation to the next bubble target and</span>
<span class="c"> * prevents any additional listeners from being exectued</span>
<span class="c"> * on the current target.</span>
<span class="c"> * @method stopImmediatePropagation</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">stopImmediatePropagation</span> <span class="o">=</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">stopImmediatePropagation</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">stopImmediatePropagation</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">stopPropagation</span><span class="o">();</span>
<span class="o">}</span>
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="m">2</span><span class="o">;</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c"> * Prevents the event's default behavior</span>
<span class="c"> * @method preventDefault</span>
<span class="c"> * @param returnValue {string} sets the returnValue of the event to this value</span>
<span class="c"> * (rather than the default false value). This can be used to add a customized </span>
<span class="c"> * confirmation query to the beforeunload event).</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">preventDefault</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">returnValue</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">();</span>
<span class="o">}</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">returnValue</span> <span class="o">=</span> <span class="nx">returnValue</span> <span class="o">||</span> <span class="kc">false</span><span class="o">;</span>
<span class="nx">wrapper</span><span class="o">.</span><span class="nx">prevented</span> <span class="o">=</span> <span class="m">1</span><span class="o">;</span>
<span class="o">};</span>
<span class="c">/**</span>
<span class="c"> * Stops the event propagation and prevents the default</span>
<span class="c"> * event behavior.</span>
<span class="c"> * @method halt</span>
<span class="c"> * @param immediate {boolean} if true additional listeners</span>
<span class="c"> * on the current target will not be executed</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">halt</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">immediate</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">immediate</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">stopImmediatePropagation</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">stopPropagation</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">();</span>
<span class="o">};</span>
<span class="o">};</span>
<span class="o">})();</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div id="moduleList" class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_align-plugin.html" title="align-plugin">align-plugin</a></li>
<li class=""><a href="module_anim.html" title="anim">anim</a></li>
<li class=""><a href="module_async-queue.html" title="async-queue">async-queue</a></li>
<li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
<li class=""><a href="module_base.html" title="base">base</a></li>
<li class=""><a href="module_cache.html" title="cache">cache</a></li>
<li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
<li class=""><a href="module_collection.html" title="collection">collection</a></li>
<li class=""><a href="module_console.html" title="console">console</a></li>
<li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
<li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
<li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
<li class=""><a href="module_dd.html" title="dd">dd</a></li>
<li class=""><a href="module_dom.html" title="dom">dom</a></li>
<li class=""><a href="module_dump.html" title="dump">dump</a></li>
<li class="selected"><a href="module_event.html" title="event">event</a></li>
<li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
<li class=""><a href="module_history.html" title="history">history</a></li>
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
<li class=""><a href="module_io.html" title="io">io</a></li>
<li class=""><a href="module_json.html" title="json">json</a></li>
<li class=""><a href="module_loader.html" title="loader">loader</a></li>
<li class=""><a href="module_node.html" title="node">node</a></li>
<li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
<li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
<li class=""><a href="module_oop.html" title="oop">oop</a></li>
<li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
<li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
<li class=""><a href="module_pluginhost.html" title="pluginhost">pluginhost</a></li>
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
<li class=""><a href="module_queue-promote.html" title="queue-promote">queue-promote</a></li>
<li class=""><a href="module_shim-plugin.html" title="shim-plugin">shim-plugin</a></li>
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
<li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
<li class=""><a href="module_test.html" title="test">test</a></li>
<li class=""><a href="module_widget.html" title="widget">widget</a></li>
<li class=""><a href="module_widget-child.html" title="widget-child">widget-child</a></li>
<li class=""><a href="module_widget-parent.html" title="widget-parent">widget-parent</a></li>
<li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
<li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
<li class=""><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
<li class=""><a href="module_yui.html" title="yui">yui</a></li>
</ul>
</div>
<div id="classList" class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="DOMEventFacade.html" title="DOMEventFacade">DOMEventFacade</a></li>
<li class=""><a href="Event.html" title="Event">Event</a></li>
</ul>
</div>
<div id="fileList" class="module">
<h4>Files</h4>
<ul class="content">
<li class=""><a href="available.js.html" title="available.js">available.js</a></li>
<li class=""><a href="delegate.js.html" title="delegate.js">delegate.js</a></li>
<li class=""><a href="event-dom.js.html" title="event-dom.js">event-dom.js</a></li>
<li class="selected"><a href="event-facade-dom.js.html" title="event-facade-dom.js">event-facade-dom.js</a></li>
<li class=""><a href="event-ready-base.js.html" title="event-ready-base.js">event-ready-base.js</a></li>
<li class=""><a href="event-ready.js.html" title="event-ready.js">event-ready.js</a></li>
<li class=""><a href="focusblur.js.html" title="focusblur.js">focusblur.js</a></li>
<li class=""><a href="key.js.html" title="key.js">key.js</a></li>
<li class=""><a href="mouseentermouseleave.js.html" title="mouseentermouseleave.js">mouseentermouseleave.js</a></li>
<li class=""><a href="mousewheel.js.html" title="mousewheel.js">mousewheel.js</a></li>
<li class=""><a href="resize-window.js.html" title="resize-window.js">resize-window.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright © 2009 Yahoo! Inc. All rights reserved.
</div>
</div>
<script type="text/javascript">
ALL_YUI_PROPS = [{"access": "", "host": "Event", "name": "attach", "url": "Event.html#method_attach", "type": "method"}, {"access": "private", "host": "Event", "name": "_avail", "url": "Event.html#property__avail", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "button", "url": "DOMEventFacade.html#property_button", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "charCode", "url": "DOMEventFacade.html#property_charCode", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "currentTarget", "url": "DOMEventFacade.html#property_currentTarget", "type": "property"}, {"access": "", "host": "Event", "name": "detach", "url": "Event.html#method_detach", "type": "method"}, {"access": "", "host": "Event", "name": "DOMReady", "url": "Event.html#property_DOMReady", "type": "property"}, {"access": "private", "host": "Event", "name": "_dri", "url": "Event.html#property__dri", "type": "property"}, {"access": "private", "host": "Event", "name": "_el_events", "url": "Event.html#property__el_events", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "_event", "url": "DOMEventFacade.html#property__event", "type": "property"}, {"access": "", "host": "Event", "name": "generateId", "url": "Event.html#method_generateId", "type": "method"}, {"access": "", "host": "Event", "name": "getEvent", "url": "Event.html#method_getEvent", "type": "method"}, {"access": "", "host": "Event", "name": "getListeners", "url": "Event.html#method_getListeners", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "halt", "url": "DOMEventFacade.html#method_halt", "type": "method"}, {"access": "private", "host": "Event", "name": "_interval", "url": "Event.html#property__interval", "type": "property"}, {"access": "private", "host": "Event", "name": "_isValidCollection", "url": "Event.html#method__isValidCollection", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "keyCode", "url": "DOMEventFacade.html#property_keyCode", "type": "property"}, {"access": "", "host": "Event", "name": "lastError", "url": "Event.html#property_lastError", "type": "property"}, {"access": "private", "host": "Event", "name": "_load", "url": "Event.html#method__load", "type": "method"}, {"access": "private", "host": "Event", "name": "_loadComplete", "url": "Event.html#property__loadComplete", "type": "property"}, {"access": "private", "host": "Event", "name": "nativeAdd", "url": "Event.html#method_nativeAdd", "type": "method"}, {"access": "private", "host": "Event", "name": "nativeRemove", "url": "Event.html#method_nativeRemove", "type": "method"}, {"access": "", "host": "Event", "name": "onAvailable", "url": "Event.html#method_onAvailable", "type": "method"}, {"access": "", "host": "Event", "name": "onContentReady", "url": "Event.html#method_onContentReady", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "pageX", "url": "DOMEventFacade.html#property_pageX", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "pageY", "url": "DOMEventFacade.html#property_pageY", "type": "property"}, {"access": "private", "host": "Event", "name": "_poll", "url": "Event.html#method__poll", "type": "method"}, {"access": "", "host": "Event", "name": "POLL_INTERVAL", "url": "Event.html#property_POLL_INTERVAL", "type": "property"}, {"access": "", "host": "Event", "name": "POLL_RETRYS", "url": "Event.html#property_POLL_RETRYS", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "preventDefault", "url": "DOMEventFacade.html#method_preventDefault", "type": "method"}, {"access": "", "host": "Event", "name": "purgeElement", "url": "Event.html#method_purgeElement", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "relatedTarget", "url": "DOMEventFacade.html#property_relatedTarget", "type": "property"}, {"access": "private", "host": "DOMEventFacade", "name": "resolve", "url": "DOMEventFacade.html#method_resolve", "type": "method"}, {"access": "private", "host": "Event", "name": "_retryCount", "url": "Event.html#property__retryCount", "type": "property"}, {"access": "private", "host": "Event", "name": "startInterval", "url": "Event.html#method_startInterval", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "stopImmediatePropagation", "url": "DOMEventFacade.html#method_stopImmediatePropagation", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "stopPropagation", "url": "DOMEventFacade.html#method_stopPropagation", "type": "method"}, {"access": "", "host": "DOMEventFacade", "name": "target", "url": "DOMEventFacade.html#property_target", "type": "property"}, {"access": "private", "host": "Event", "name": "_unload", "url": "Event.html#method__unload", "type": "method"}, {"access": "private", "host": "DOMEventFacade", "name": "webkitKeymap", "url": "DOMEventFacade.html#property_webkitKeymap", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "wheelDelta", "url": "DOMEventFacade.html#property_wheelDelta", "type": "property"}, {"access": "", "host": "DOMEventFacade", "name": "which", "url": "DOMEventFacade.html#property_which", "type": "property"}, {"access": "private", "host": "Event", "name": "_wrappers", "url": "Event.html#property__wrappers", "type": "property"}];
</script>
</body>
</html>