src/cm/media/js/lib/yui/yui_3.10.3/docs/event/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Event</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Event</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    h4 code {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        text-transform: none;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    .yui3-skin-sam td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        background-color: #E6E9F5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    .yui3-skin-sam .yui3-datatable td {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        background-color: transparent;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
<div class="intro component">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    <p>The YUI Event Utility provides APIs for working with the browser's DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    event system.  It simplifies tasks like subscribing to button <code>click</code>s or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    canceling &lt;form&gt; <code>submit</code>s to, for example, allow sending data to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    server via ajax.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    <p>In addition, the "Synthetic event" system supplies <em>entirely new</em>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    DOM events to subscribe to as well as fixing events that behave differently
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    across browsers.  Implementers can create their own DOM events triggered by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    specific user actions or other environmental criteria.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    <p>The API for working with DOM events is provided by the EventTarget class,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    which also services the Custom event infrastructure that is used throughout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    YUI.  Read more about working with custom events <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    href="../event-custom/index.html">in the EventTarget user guide</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
To include the source files for Event and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
YUI().use(&#x27;event&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    &#x2F;&#x2F; Event is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
<h2 id="the-basics">The Basics</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
<h4 id="listening-for-events">Listening for events</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
<pre class="code prettyprint">&#x2F;&#x2F; Step 1. Capture a button node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
var button = Y.one(&quot;#readygo&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
&#x2F;&#x2F; Step 2. Subscribe to its click event with a callback function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
button.on(&quot;click&quot;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    &#x2F;&#x2F; Step 3. do stuff when the button is clicked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
<p><code>on(<em>type</em>, <em>callback</em>)</code> is the main
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
subscription method, and is available on every <a href="../node/"><code>Node</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
and <a href="../node/#nodelist"><code>NodeList</code></a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
<p>Replace "click" with <a href="#event-whitelist">any other event name</a> to subscribe to that event.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
<h4 id="the-callback-and-the-event-object">The Callback and the Event Object</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
<pre class="code prettyprint">button.on(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    &#x2F;&#x2F; &#x60;this&#x60; is the button Node, NOT the DOM element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    this.get(&#x27;id&#x27;); &#x2F;&#x2F; ==&gt; &#x27;readygo&#x27; (from &lt;button id=&quot;readygo&quot;&gt;...&lt;&#x2F;button&gt;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    &#x2F;&#x2F; Event properties that point to the DOM are also Node instances
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    e.target.get(&#x27;id&#x27;); &#x2F;&#x2F; =&gt; &#x27;readygo&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    &#x2F;&#x2F; Stop the event&#x27;s default behavior
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    &#x2F;&#x2F; Stop the event from bubbling up the DOM tree
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    e.stopPropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
<p>Subscribed callbacks are passed a <a href="#facade-properties">normalized
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
event object</a> as their first argument.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
<p>The keyword "<code>this</code>" in the callback will refer to the Node or NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
that you subscribed from.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
<h4 id="epreventdefault-and-estoppropagation"><code>e.preventDefault()</code> and <code>e.stopPropagation()</code></h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
<p>Many events have a default behavior, such as the <code>submit</code> event serializing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
form data and making a new page request.  Disable this behavior with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
<code>e.preventDefault()</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
<pre class="code prettyprint">function setFilter(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    &#x2F;&#x2F; Stop the link from loading the href page
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    &#x2F;&#x2F; Now do my own thing instead
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    var url = this.get(&#x27;href&#x27;).replace(&#x2F;page&#x2F;, &#x27;partial&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    Y.one(&#x27;#contentArea&#x27;).load(url);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    &#x2F;&#x2F; &#x60;return false&#x60; is supported, but not preferred. use e.preventDefault()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
Y.one(&#x27;#table-filter-link&#x27;).on(&#x27;click&#x27;, setFilter);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
<p>Most events can be listened for on the specific element that originates them
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
<em>or from any of their parent elements</em>, all the way up to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
<code>document</code>.  Prevent dispatching the event to subscriptions bound to elements
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
further up the DOM tree with <code>e.stopPropagation()</code>.  In practice, this is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
rarely useful.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
<p>Returning <code>false</code> from a callback will also stop the propagation of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
event, which may cause unintended side effects.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
<p><code>e.stopPropagation()</code> won't prevent the execution of other subscribers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
listening to the same element, only elements further up the DOM tree.  If you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
need to stop all execution, use <code>e.stopImmediatePropagation()</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
<code>e.halt(true)</code>. The latter will also call <code>e.preventDefault()</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
<h4 id="detaching-subscriptions">Detaching subscriptions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
<p><code>node.on()</code> and all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
<a href="#more">other subscription methods</a> return a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
subscription object that can be used to unbind that subscription.  Node also
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
supports a <code>detach()</code> method and <a href="#detach-methods">other ways to cleanup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
subscriptions</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
<pre class="code prettyprint">&#x2F;&#x2F; on() returns a subscription handle...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
var sub = button.on(&quot;click&quot;, handleClick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
&#x2F;&#x2F; ...that can be used to unbind the subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
sub.detach();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
&#x2F;&#x2F; Alternately, use the Node&#x27;s detach() method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
button.detach(&quot;click&quot;, handleClick);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
<p>Just this should take care of most of the simple event bindings you'll need.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
There's <a href="#more">a lot more you can do</a>, though, so read on!</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
<h2 id="modules">What to <code>use()</code></h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    Before we get into <a href="#more">more API goodies</a>, let's talk about
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    the Event Utility's module breakdown.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    For starters, in most cases <em>you probably won't <code>use(&#x27;event&#x27;)</code></em>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    The core DOM event system ("event-base") is required by the "node-base"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    module, which itself if required by just about everything in YUI.  So you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    probably already have the DOM event API and didn't know it!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
<p>Here is the full breakdown of modules in the DOM event system:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
<thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        <th><code>use(&quot;______&quot;, ...)</code></th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        <th>What's in it?</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
</thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
<tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-base.html"><code>event-base</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                The core DOM event subscription system as well as the DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
                lifecycle events <a href="domready.html"><code>domready</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
                <code>contentready</code>, and <code>available</code></a>.  Notably, it does NOT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                include
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
            <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                <li>event delegation</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
                <li>event simulation</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
                <li>synthetic events</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
            <p>If you've <code>use()</code>d anything, you probably have this already.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event.html"><code>event</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
            A rollup of all modules below except
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                <li>"event-simulate"</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                <li>"node-event-simulate"</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                <li>"node-event-delegate" (which is in the "node" rollup)</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-delegate.html"><code>event-delegate</code></a> &amp;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            <br>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
            <a style="white-space: nowrap;" href="http://yuilibrary.com/yui/docs/api/module_node-event-delegate.html"><code>node-event-delegate</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
            Adds the <code>Y.delegate(...)</code> and <code>node.delegate(...)</code> methods,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
            respectively, for <a href="#delegation">event delegation</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
            convenience.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-simulate.html"><code>event-simulate</code></a> &amp;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
            <br>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
            <a style="white-space: nowrap;" href="http://yuilibrary.com/yui/docs/api/module_node-event-simulate.html"><code>node-event-simulate</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
                Adds <code>Y.Event.simulate(...)</code> and <code>node.simulate(...)</code> for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
                <a href="#simulate">triggering native DOM events</a> for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
                unit testing.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
                <strong>Note: <a href="simulate.html#faking">Faking DOM events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
                should not be used in user facing code</a></strong>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-synthetic.html"><code>event-synthetic</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
            <p>Supplies the infrastructure for creating new DOM events, "fixing"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
            existing events with undesirable or inconsistent behavior, and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
            <a href="synths.html">all sorts of other things</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
            <p>All of the modules below are synthetics.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-flick.html"><code>event-flick</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
            Adds a <a href="touch.html#flick">"flick" event</a> for touch or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
            mouse interaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-focus.html"><code>event-focus</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            <a href="focus.html">Fixes <code>focus</code> and <code>blur</code> events</a> to bubble
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
            (for delegation).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
        <td><a href="gestures.html"><code>event-gestures</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
            <p>The gestures rollup provides gesture events such as "flick" and "gesturemove", which normalize user interactions across touch and mouse or pointer based input devices. It contains the following modules:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
            <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                <li>"event-touch"</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
                <li>"event-move"</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
                <li>"event-flick"</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
            <p>In the future, may contain more gesture abstraction modules.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-hover.html"><code>event-hover</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
            Adds a <a href="mouseenter.html#hover">"hover" event</a> which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
            binds to two callbacks, one for the start, and one for the end of a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            mouse hover.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-key.html"><code>event-key</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
            Adds a <a href="key.html">"key" event</a> which listens for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
            specific, implementer defined, keys being pressed by the user.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-mouseenter.html"><code>event-mouseenter</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
            Adds <a href="mouseenter.html">"mouseenter" and "mouseleave"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
            events</a>.  You probably want to use these instead of "mouseover"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
            and "mouseout".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-mousewheel.html"><code>event-mousewheel</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
            <p>Adds a "mousewheel" event for monitoring users scrolling the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
            window with the mousewheel.  Event facades passed to the callback
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
            will have an <code>e.wheelDelta</code> property corresponding to the amount of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
            scrolling.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
            <p>Currently, this event can only be subscribed with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
            <code>Y.on(&quot;mousewheel&quot;, callback)</code>;</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-move.html"><code>event-move</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            Adds <a href="touch.html#move">"gesturemovestart", "gesturemove",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
            and "gesturemoveend" events</a> that serve as abstractions over
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            mouse and touch events, forking internally based on the client
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
            device.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-outside.html"><code>event-outside</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
            Adds a <a href="outside.html">"clickoutside" and several other
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
            outside events</a> to trigger behavior based on actions taken
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
            outside a specific element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-resize.html"><code>event-resize</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
            <p>Adds a "windowresize" event that only fires after a user has
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
            stopped dragging a window's resize handle.  This normalizes the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
            <code>window.onresize</code> event across browsers.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
            <p>This event can only be subscribed with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
            <code>Y.on(&quot;windowresize&quot;, callback)</code>;</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-touch.html"><code>event-touch</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
            Adds support for <a href="touch.html">subscribing to native touch
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
            and gesture events</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-valuechange.html"><code>event-valuechange</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
            Adds a <a href="valuechange.html">"valuechange" event</a> that fires when input element text
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
            changes (this is harder than you think).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-contextmenu.html"><code>event-contextmenu</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
            <a href="contextmenu.html">Fixes bugs and inconstancies</a> that can occur when the "contextmenu" event is fired via the keyboard.  <a href="contextmenu.html#the-value-of-the-contextmenu-synthetic-event">Adds sugar for working with the "contextmenu" event</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        <td><a href="http://yuilibrary.com/yui/docs/api/module_event-tap.html"><code>event-tap</code></a></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
            Adds a synthetic <a href="tap.html">"tap" event</a> that allows for fast-click on touch devices, while supporting mouse events as well.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
</tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
<h2 id="delegation">Event Delegation</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
<p>If you don't already know what event delegation is, you should <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
href="delegation.html">read this quick overview</a>. Short form: <em>you need
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
to be using this</em>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
<pre class="code prettyprint">&#x2F;&#x2F; single element subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
node.on(&quot;click&quot;, handleClick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
&#x2F;&#x2F; delegated subscription for all button clicks from inside the node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
node.delegate(&quot;click&quot;, handleClick, &quot;button, input[type=button]&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
<p>Creating a delegated subscription looks very much like creating any other
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
event subscription with two differences. First, it's a different method name,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
<code>delegate</code>.  Second, there is another argument: a CSS selector that is used to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
test the event's originating element to decide if the callback should be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
executed.  If the event started at or inside an element matching the selector,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
the callback will execute.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
<p>Unlike <code>node.on()</code> subscriptions, the <code>this</code> object in <code>node.delegate()</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
callbacks will refer to the element that matched the css filter, not to <code>node</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
We did this because likely your logic revolves around the nodes described by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
the filter, not around the element that contains them.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
<pre class="code prettyprint">function handleClick (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
    &#x2F;&#x2F; &#x60;this&#x60; is the button with class .remove, not the #items element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    &#x2F;&#x2F; remove the containing LI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    this.ancestor(&#x27;li&#x27;).remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
    &#x2F;&#x2F; e.currentTarget is also the button.remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    &#x2F;&#x2F; e.container === Y.one(&#x27;#items&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
Y.one(&#x27;#items&#x27;).delegate(&#x27;click&#x27;, handleClick, &#x27;button.remove&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
<p>For more complex target filtering, a function can be passed instead of a css
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
selector.  See the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
<a href="http://yuilibrary.com/yui/docs/api/module_event-delegate.html#method_delegate">API docs</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
for more details.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
<p>As noted <a href="#modules">above</a>, the <code>event-delegate</code> module is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
included in the <code>event</code> rollup, but <code>node-event-delegate</code> isn't.  We recommend
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
using delegation from the Node API, so you should <code>use()</code> either
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
<code>node-event-delegate</code> or the <code>node</code> rollup.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
<h2 id="more">More Event API Goodness</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
    Here is a sampling of some of the other ways to manage event subscriptions
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
    in YUI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
<h4 id="y-on">Subscribe from <code>Y</code></h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
<pre class="code prettyprint">&#x2F;&#x2F; Y.on() takes a third argument which is the Node, DOM element,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
&#x2F;&#x2F; or CSS selector of the element(s) to bind
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
Y.on(&quot;click&quot;, handleClick, &quot;#readygo&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
&#x2F;&#x2F; Y.delegate() similarly takes the containing element or selector
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
&#x2F;&#x2F; as the third argument
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
Y.delegate(&quot;click&quot;, handleClick, &quot;#container&quot;, &quot;button, input[type=button]&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
    An alternate syntax for DOM subscriptions is using <code>Y.on()</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
    <code>Y.delegate()</code>.  When identifying the target by a CSS selector, these
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    methods can be used regardless if the element is currently available for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
    scripting.  If it's not yet on the page, a poll will regularly look for it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
    (for a few seconds) and the subscription will be automatically attached
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
    when the element is found.  Relying on this behavior can introduce race
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    conditions, though, so use it wisely.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
    Use of <code>Y.on()</code> instead of <code>node.on()</code> is largely a stylistic preference,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
    though <a href="#y-on-vs-node-on">there are some technical differences</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
<h4 id="once">One time subscriptions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
<pre class="code prettyprint">tabLabel.once(&#x27;mouseover&#x27;, loadTabContent);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
<p>If you only want to execute a callback on the first occurrence of an event, use <code>node.once()</code> or <code>Y.once()</code>.  The subscription will automatically be detached after the event fires.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
<p>The signature for <code>once()</code> is the same as <code>on()</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
<h4 id="grouping-subscriptions">Grouping subscriptions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
<p>Pass an object to subscribe to multiple events, each with their own
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
callback</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
<pre class="code prettyprint">function validate(e) { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
function clearPlaceholder(e) { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
var groupSub = inputNode.on({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
    blur    : validate,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
    keypress: validate,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
    focus   : clearPlaceholder
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
&#x2F;&#x2F; Detach the blur, keypress, and focus subscriptions in one call
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
groupSub.detach();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
<p>Pass an array to subscribe to multiple events with the same callback</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
<pre class="code prettyprint">function activate(e) { ... }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
groupSub = inputNode.on([&#x27;focus&#x27;, &#x27;mouseover&#x27;], activate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
&#x2F;&#x2F; Detach the focus and mouseover subscriptions
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
groupSub.detach();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
<p>Prefix the event name with a category to allow detaching multiple
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
subscriptions by that category.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
<pre class="code prettyprint">inputNode.on(&#x27;my-category|focus&#x27;, activate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
inputNode.on(&#x27;my-category|mouseover&#x27;, activate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
&#x2F;&#x2F; You can detach specific subscriptions by &#x27;my-category|focus&#x27; or all with |*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
inputNode.detach(&#x27;my-category|*&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
<p>The <code>once()</code> and <code>delegate()</code> methods also support these alternate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
signatures.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
<h4 id="extended-signature">Binding <code>this</code> and additional callback arguments</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
    By default, the "<code>this</code>" object in subscription callbacks will be the Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
    or NodeList that subscribed to them.  Override this default by passing your
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
    own <code>this</code> object as the third argument to <code>on()</code> or the fourth to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
    <code>delegate()</code>.  Note that the argument index is shifted when using <code>Y.on()</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
    and <code>Y.delegate()</code> or <a href="synths.html">synthetic events with custom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
    signatures</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
<pre class="code prettyprint">&#x2F;&#x2F; equivalent to node.on(&#x27;click&#x27;, function (e) { overlay.hide(e); });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
node.on(&#x27;click&#x27;, overlay.show, overlay);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
node.once(&#x27;mouseover&#x27;, door.unlock, door);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
&#x2F;&#x2F; &#x60;this&#x60; override comes after the filter; also shifted for the &#x27;key&#x27; event&#x27;s
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
&#x2F;&#x2F; custom signature.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
container.delegate(&#x27;key&#x27;, validator.isValid, &#x27;enter,tab&#x27;, &#x27;input&#x27;, validator);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
&#x2F;&#x2F; Corresponding alternatives from Y
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
Y.on(&#x27;click&#x27;, overlay.show, &#x27;#show&#x27;, overlay);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
Y.once(&#x27;mouseover&#x27;, door.unlock, &#x27;#gate13&#x27;, door);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
Y.delegate(&#x27;key&#x27;, validator.isValid, &#x27;#myForm&#x27;, &#x27;enter,tab&#x27;, &#x27;input&#x27;, validator);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
<p>Additional arguments passed to the subscription methods will be sent along
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
to the callback after the event facade. If you want to bind extra arguments,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
but don't want to override the "<code>this</code>" object, pass <code>null</code> for the <code>this</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
argument.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
<pre class="code prettyprint">MyClass.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
    someMethod: function (param) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
        Y.log(param); &#x2F;&#x2F; =&gt; &quot;I&#x27;m Extra!&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
    handleClick: function (e, extraParam) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
        this.someMethod(extraParam);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
        ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
var instance = new Y.MyClass();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
&#x2F;&#x2F; The extra arg is passed as the second param to the callback after &#x60;e&#x60;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
Y.one(&#x27;#readygo&#x27;).on(&#x27;click&#x27;, instance.handleClick, instance, &quot;I&#x27;m Extra!&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
<h4 id="detach-methods">More ways to clean up subscriptions</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
<p>There are a lot of options for detaching events in YUI.  See the table below for details.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
<thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        <th>Method</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
        <th>What it does</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
</thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
<tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
<pre class="code prettyprint">var subscription = node.on(&#x27;click&#x27;, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
subscription.detach();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
                Removes a specific subscription or, if created with one of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
                group subscription methods, a group of subscriptions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
                Generally, this is the best method to use.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
    <tr id="remove-by-category">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
<pre class="code prettyprint">node.on(&#x27;foo-category|click&#x27;, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
node.detach(&#x27;foo-category|click&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
node.detach(&#x27;foo-category|*&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
                Removes a subscription or group of subscriptions that included
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
                the specified category in the subscription event type.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
                This is typically only safe in implementation code, not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
                module code, because multiple subscriptions using the same type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
                and category will be detached by the call to <code>detach</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
<pre class="code prettyprint">node.detach(&#x27;click&#x27;, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
node.detach(&#x27;click&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
node.detach():</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
                If you have a reference to the subscribed callback function,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
                (but not a subscription handle) use the two argument signature.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
                With one argument, <code>detach</code> will remove all subscriptions for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
                the specified event.  With no arguments, it removes all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
                subscriptions for all events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
                <code>detach</code> does not remove subscriptions from descendant nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
<pre class="code prettyprint">node.detachAll();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                Works the same as <code>node.detach()</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
<pre class="code prettyprint">node.purge();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
node.purge(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
node.purge(true, &#x27;click&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
                With no arguments, <code>purge</code> works the same as <code>node.detach()</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
                Passing <code>true</code> as a first argument will remove all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
                subscriptions for all events from the node <em>and its
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
                descendant subtree</em>. Passing an event type as a second
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
                argument will only deep purge subscriptions to that event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
<pre class="code prettyprint">node.empty();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
                Removes subscriptions for all events <em>only from the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
                descendants of a node</em> after removing them from the DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
<pre class="code prettyprint">node.destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
node.destroy(true);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
                With no arguments, works like <code>node.detach()</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
                With <code>true</code> as a first argument, it works like
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
                <code>node.purge(true)</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
                The <code>destroy</code> method does more than detaching event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
                subscribers.  Read the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
                <a href="http://yuilibrary.com/yui/docs/api/classes/Node.html#method_destroy">API
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
                docs</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
<pre class="code prettyprint">Y.Event.detach(&#x27;click&#x27;, callback, &#x27;#foo&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
                Same as <code>Y.one(&#x27;#foo&#x27;).detach( [other args] )</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
<pre class="code prettyprint">Y.Event.purgeElement(&#x27;#foo&#x27;, true, &#x27;click&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
        <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
                Same as <code>Y.one(&#x27;#foo&#x27;).purge( [other args] )</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
</tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
<h2 id="simulate">Simulate browser events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
    For creating automated functional tests, being able to simulate user
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
    interaction can be crucial.  That's where the <code>node-event-simulate</code> module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
    comes in.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
<pre class="code prettyprint">YUI().use(&#x27;test&#x27;, &#x27;node-event-simulate&#x27;, &#x27;fancy&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
var test = new Y.Test.Case({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
    &quot;clicking close button should dismiss UI&quot;: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
        var widget      = new Y.MyFancyWidget().render(&#x27;#here&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
            uiBox       = widget.get(&#x27;boundingBox&#x27;),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
            closeButton = uiBox.one(&#x27;.close-button&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
        closeButton.simulate(&#x27;click&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
        Y.Assert.isFalse( uiBox.inDoc() );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
    ...</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
    <code>node.simulate( type, eventProperties )</code> creates a native DOM event that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
    will bubble (if appropriate), but will not trigger native default behavior.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
    For example, <code>node.simulate(&#x27;submit&#x27;)</code> will not send data to the server for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
    a page reload.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
<p>Read <a href="simulate.html">more about event simulation here</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
<h2 id="synthetic-events">Synthetic Events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
<p>The event system supports adding new abstractions over the native DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
environment that behave like DOM events.  These abstractions are called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
synthetic events, and you can subscribe to them like any other DOM event with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
<code>node.on()</code> or <code>node.delegate()</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
<pre class="code prettyprint">Y.one(&#x27;#dialog&#x27;).on(&#x27;clickoutside&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
    this.transition(&#x27;fadeOut&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
Y.one(&#x27;#editable-table&#x27;).delegate(&#x27;key&#x27;, saveAndAdvance, &#x27;tab&#x27;, &#x27;input&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
    The synthetic events that are available as core YUI modules are listed in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
    <a href="#modules">the table of modules above</a>, though there are others
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
    <a href="http://yuilibrary.com/gallery/">in the Gallery</a>.  Most events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
    listed in the table are linked to pages that describe the specific event in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
    more detail.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
<h4 id="creating-dom-events">Creating DOM events</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
<p>Create your own synthetic events with <code>Y.Event.define(type, config)</code>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
<pre class="code prettyprint">Y.Event.define(&quot;tripleclick&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
    &#x2F;&#x2F; The setup logic executed when node.on(&#x27;tripleclick&#x27;, callback) is called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
    on: function (node, subscription, notifier) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
        &#x2F;&#x2F; supporting methods can be referenced from &#x60;this&#x60;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
        this._clear(subscription);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
        &#x2F;&#x2F; To make detaching easy, a common pattern is to add the subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
        &#x2F;&#x2F; for the supporting DOM event to the subscription object passed in.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
        &#x2F;&#x2F; This is then referenced in the detach() method below.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
        subscription._handle = node.on(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
            if (subscription._timer) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
                subscription._timer.cancel();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
            if (++subscription._counter === 3) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
                this._clear(subscription);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
                &#x2F;&#x2F; The notifier triggers the subscriptions to be executed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
                &#x2F;&#x2F; Pass its fire() method the triggering DOM event facade
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
                notifier.fire(e);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
                subscription._timer =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
                    Y.later(300, this, this._clear, [subscription]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
    &#x2F;&#x2F; The logic executed when the &#x27;tripleclick&#x27; subscription is &#x60;detach()&#x60;ed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
    detach: function (node, subscription, notifier) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
        &#x2F;&#x2F; Clean up supporting DOM subscriptions and other external hooks
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
        &#x2F;&#x2F; when the synthetic event subscription is detached.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
        subscription._handle.detach();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
        if (subscription._timer) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
            subscription._timer.cancel();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
    &#x2F;&#x2F; Additional methods can be added to support the lifecycle methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
    _clear: function (subscription) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
        subscription._counter = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
        subscription._timer = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
<p>After the synthetic event is defined, it is available for every Node and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
NodeList to subscribe to.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
<pre class="code prettyprint">Y.one(&#x27;#hellokitty&#x27;).on(&#x27;tripleclick&#x27;, omgYayCantClickEnough);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
<p>There is additional configuration to <a href="synths.html">add support for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
<code>delegate()</code> or extra subscription arguments</a>, but often very little extra
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
code is needed.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
<h2 id="troubleshootingfaq">Troubleshooting/FAQ</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
    <li><a href="#function-reference">My callback is executing at the wrong time. What's going on?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
    <li><a href="#wrong-this">I'm getting an error in my callback that "(some object) has no method (someMethodOnMyObject)". What am I missing?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
    <li><a href="#which-events">What events can I subscribe to?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
    <li><a href="#why-on-no-chain">Why isn't on() chainable?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
    <li><a href="#y-on-vs-node-on">Why would I use <code>Y.on()</code> or <code>Y.delegate()</code> instead of <code>node.on()</code> and <code>node.delegate()</code>?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
    <li><a href="#after">EventTarget also provides an <code>after()</code> method. How does that work for DOM events?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
    <li><a href="#nodelist-this">When I subscribe to an event from a NodeList, <code>this</code> is the NodeList, not the individual Node.  What's up with that?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
    <li><a href="#nodelist-delegate">Where is <code>nodelist.delegate()</code>?</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
    <!--li><a href="#">What works and what doesn't on mobile browsers?</a></li-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
<h4 id="function-reference">My callback is executing at the wrong time. What's going on?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
<p>It's likely that you've included parenthesis in the subscription.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
<pre class="code prettyprint">&#x2F;&#x2F; WRONG
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
node.on(&#x27;click&#x27;, someFunction());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
node.on(&#x27;click&#x27;, myObject.someFunction());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
&#x2F;&#x2F; RIGHT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
node.on(&#x27;click&#x27;, someFunction);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
node.on(&#x27;click&#x27;, myObject.someFunction, myObject);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
    Including the parens makes the function execute immediately, and pass the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
    return value from the function to <code>node.on(&#x27;click&#x27;, [RETURN VALUE])</code>.  To
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
    pass a function around, just omit the parens.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
<h4 id="wrong-this">I'm getting an error in my callback that "<code>(some object) has no method (someMethodOnMyObject)</code>". What am I missing?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
    You may be passing an object method to <code>on()</code>, but forgot to include
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
    <a href="#extended-signature">the <code>this</code> object override parameter</a> in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
    the subscription.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
    Another option to make sure object methods are called with the correct
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
    <code>this</code> object is to use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
    <a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_bind">`Y.bind(obj.method,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
    obj)`</a> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
    <a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_rbind">`Y.rbind(obj.method,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
    obj)`</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
<pre class="code prettyprint">&#x2F;&#x2F; WRONG
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
node.on(&#x27;click&#x27;, myObj.method);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
&#x2F;&#x2F; RIGHT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
node.on(&#x27;click&#x27;, myObj.method, myObj);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
&#x2F;&#x2F; RIGHT (alternate)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
node.on(&#x27;click&#x27;, Y.rbind(obj.method, obj));</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
<h4 id="which-events">What events can I subscribe to?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
    It depends what modules you've included.  Check out the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
    <a href="#event-whitelist">whitelisted events table</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
<h4 id="why-on-no-chain">Why isn't on() chainable?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
    After much deliberation, the YUI team decided that returning a subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
    handle was preferable to chaining in order to better support clean event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
    detaching across the various scenarios that DOM and custom events are used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
    In any sizable application, managing event subscriptions becomes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
    increasingly important, and detaching events must be done with precision.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
    Because YUI allows duplicate subscriptions, any host-based detach method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
    will necessarily be less than 100% reliable with respect to avoiding
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
    removal of subscriptions made by other parts of the system.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
    Otherwise, it's common to subscribe to events with anonymous functions,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
    which makes it impossible to detach the specific subscription by signature
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
    because you don't have a function reference to use to identify the specific
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
    subscription to remove.  Subscription categories can be used, but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
    <a href="#remove-by-category">are also less precise</a> than
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
    dealing with a specific subscription object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
<h4 id="y-on-vs-node-on">Why would I use <code>Y.on()</code> or <code>Y.delegate()</code> instead of <code>node.on()</code> and <code>node.delegate()</code>?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
    It's <a href="#y-on">largely a stylistic preference</a>, but there are some
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
    technical differences when passing a selector string as a the third
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
    argument to <code>Y.on()</code> or <code>Y.delegate()</code> (ala
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
    <code>Y.on(&#x27;click&#x27;, callback, &#x27;#some select.or-string&#x27;)</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
            <code>Y.on()</code> uses the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
            <a href="http://yuilibrary.com/yui/docs/api/classes/Selector.html">Selector engine</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
            directly rather than calling through <code>Y.all(...)</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
            The benefit here is that the Node and NodeList constructors add the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
            slightest bit of overhead to the subscription process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
        When passing a selector that matches multiple elements, the <code>this</code> in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
        the callback will be the individual Node, not a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
        <a href="#nodelist-this">NodeList wrapping all matched elements</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
            If called before the elements matching the selector are attached to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
            the DOM, it will poll for a few seconds and automatically attach
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
            the subscription when the first matching element is found.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
            Note, if using a selector that matches multiple elements, the poll
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
            will attach the subscription the first time Selector finds a match.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
            This <em>may not include all the elements</em> because either the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
            DOM is not fully updated yet, or the code that adds the matching
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
            elements may happen in batches.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
        <p>In practice, it is best to avoid reliance on this behavior.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
<h4 id="after"><code>EventTarget</code> also provides an <code>after()</code> method. How does that work for DOM events?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
    <code>node.after(...)</code> is equivalent to <code>node.on(...)</code>.  The DOM doesn't expose
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
    an "after" moment to hook into.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
<h4 id="nodelist-this">When I subscribe to an event from a NodeList, <code>this</code> is the NodeList, not the individual Node.  What's up with that?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
    In the callback, <code>e.currentTarget</code> will always refer to the individual Node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
    However, if you call
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
<pre class="code prettyprint">Y.all(&#x27;#some select.or-string&#x27;).on(&#x27;click&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
    &#x2F;&#x2F; how do I reference the NodeList?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
    you can't reference the NodeList captured by <code>Y.all()</code> without calling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
    <code>Y.all()</code> again, but that results in unnecessary overhead, and may match
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
    different elements in the subsequent call.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
    In general, you should avoid <code>nodelist.on()</code> anyway,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
    <a href="#delegation">in favor of event delegation</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
<h4 id="nodelist-delegate">Where is <code>nodelist.delegate()</code>?</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
    The point of delegation is to reduce the number of subscriptions being made.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
    <code>nodelist.delegate()</code> would be philosophically at odds with that. Either
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
    call <code>node.delegate()</code> from an element higher up the DOM tree, or <em>if
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
    you must</em> delegate the same event and callback from multiple
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
    containers, use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
<pre class="code prettyprint">nodelist.each(function (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
    node.delegate(&#x27;click&#x27;, callback, &#x27;.not-recommended&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
<h2 id="more-reading">More Reading</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
<h3 id="page-lifecycle-events"><a href="domready.html">Page Lifecycle events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
    Details about <code>domready</code>, <code>available</code>, and <code>contentready</code> events provided in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
    the event core. <a href="domready.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
<h3 id="event-delegation"><a href="delegation.html">Event Delegation</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
    What is event delegation and why you should be using it.  A lot.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
    <a href="delegation.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
<h3 id="event-simulation"><a href="simulate.html">Event Simulation</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
    How to simulate user events like "click" or "keypress", what events can be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
    simulated, and some important caveats.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
    <a href="simulate.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
<h3 id="create-new-dom-events"><a href="synths.html">Create New DOM Events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
    How to create a tailor made DOM event for subscription or delegation from
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
    any Node.  This is a great way to encapsulate and label more comples user
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
    behaviors.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
    <a href="synths.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
<h3 id="working-with-touch-events"><a href="touch.html">Working With Touch Events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1079
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1080
    Details on the supported touch events, the touch/mouse abstraction layer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1081
    events, and gesture based events like "flick".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
    <a href="touch.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
<h3 id="delegating-the-focus-and-blur-events"><a href="focus.html">Delegating the <code>focus</code> and <code>blur</code> Events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
    Using the <code>event-focus</code> module to simulate support for bubbling <code>focus</code> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
    <code>blur</code> events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
    <a href="focus.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
<h3 id="the-hover-mouseenter-and-mouseleave-events"><a href="mouseenter.html">The <code>hover</code>, <code>mouseenter</code>, and <code>mouseleave</code> Events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
    Describes why <code>mouseenter</code> and <code>mouseleave</code> events are usually what you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
    want when you subscribe to <code>mouseover</code> and <code>mouseout</code>, and goes over using
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
    the <code>hover</code> event (which uses the other two under the hood).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
    <a href="mouseenter.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
<h3 id="complex-keyboard-input-filtering"><a href="key.html">Complex Keyboard Input Filtering</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
    Using the <code>key</code> event to respond to specific users pressing specific keys or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
    or key combinations.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
    <a href="key.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
<h3 id="responding-to-events-outside-of-a-node"><a href="outside.html">Responding to Events <em>outside</em> of a Node</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
    Details the host of "outside" events that can be used to trigger behavior
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
    when users interact with element outside of the relevant Node.  Think
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
    closing popups if a user clicks somewhere else on the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
    <a href="outside.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
<h3 id="monitoring-changes-to-input-and-textarea-values"><a href="valuechange.html">Monitoring Changes to <code>&lt;input&gt;</code> and <code>&lt;textarea&gt;</code> Values</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
    Using the <code>valuechange</code> event to catch the moments when a user types, cuts,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
    pastes, or otherwise alters the value in an input field.  No,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
    <code>input.on(&#x27;change&#x27;, callback)</code> is not enough.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
    <a href="valuechange.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
<h3 id="keyboard-accessible-contextmenu-events"><a href="contextmenu.html">Keyboard Accessible <code>contextmenu</code> Events</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
    Repairing cross browser keyboard support for the <code>contextmenu</code> event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
    <a href="contextmenu.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
<h3 id="the-tap-event"><a href="tap.html">The <code>tap</code> Event</a></h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
    Using the <code>event-tap</code> module for fast-click on touch devices.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
    <a href="tap.html">Read more...</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
<h2 id="event-whitelist">Appendix A: Whitelisted DOM events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
<div id="events">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
<thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
        <th>Event</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
        <th>Added by</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
</thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
<tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
        <td>abort</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
        <td>beforeunload</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
        <td>blur</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
        <td>change</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
        <td>click</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
        <td>close</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1175
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1176
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1177
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1178
        <td>command</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1179
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1180
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1181
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1182
        <td>contextmenu</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1183
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1184
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1185
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1186
        <td>dblclick</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1187
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1188
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1189
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1190
        <td>DOMMouseScroll</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1191
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1192
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1193
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1194
        <td>drag</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1195
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1196
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1197
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1198
        <td>dragstart</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1199
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1200
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1201
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1202
        <td>dragenter</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1203
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1204
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1205
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1206
        <td>dragover</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1207
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1208
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1209
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1210
        <td>dragleave</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1211
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1212
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1213
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1214
        <td>dragend</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1215
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1216
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1217
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1218
        <td>drop</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1219
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1220
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1221
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1222
        <td>error</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1223
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1224
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1225
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1226
        <td>focus</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1227
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1228
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1229
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1230
        <td>key</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1231
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1232
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1233
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1234
        <td>keydown</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1235
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1236
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1237
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1238
        <td>keypress</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1239
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1240
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1241
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1242
        <td>keyup</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1243
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1244
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1245
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1246
        <td>load</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1247
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1248
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1249
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1250
        <td>message</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1251
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1252
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1253
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1254
        <td>mousedown</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1255
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1256
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1257
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1258
        <td>mouseenter</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1259
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1260
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1261
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1262
        <td>mouseleave</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1263
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1264
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1265
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1266
        <td>mousemove</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1267
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1268
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1269
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1270
        <td>mousemultiwheel</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1271
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1272
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1273
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1274
        <td>mouseout</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1275
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1276
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1277
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1278
        <td>mouseover</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1279
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1280
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1281
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1282
        <td>mouseup</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1283
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1284
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1285
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1286
        <td>mousewheel</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1287
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1288
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1289
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1290
        <td>orientationchange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1291
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1292
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1293
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1294
        <td>reset</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1295
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1296
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1297
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1298
        <td>resize</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1299
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1300
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1301
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1302
        <td>select</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1303
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1304
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1305
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1306
        <td>selectstart</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1307
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1308
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1309
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1310
        <td>submit</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1311
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1312
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1313
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1314
        <td>scroll</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1315
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1316
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1317
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1318
        <td>tap</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1319
        <td>event-tap</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1320
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1321
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1322
        <td>textInput</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1323
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1324
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1325
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1326
        <td>unload</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1327
        <td>node-base</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1328
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1330
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1331
        <td>DOMActivate</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1332
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1333
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1334
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1335
        <td>DOMContentLoaded</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1336
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1337
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1338
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1339
        <td>afterprint</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1340
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1341
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1342
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1343
        <td>beforeprint</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1344
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1345
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1346
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1347
        <td>canplay</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1348
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1349
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1350
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1351
        <td>canplaythrough</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1352
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1353
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1354
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1355
        <td>durationchange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1356
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1357
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1358
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1359
        <td>emptied</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1360
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1361
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1362
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1363
        <td>ended</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1364
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1365
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1366
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1367
        <td>formchange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1368
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1369
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1370
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1371
        <td>forminput</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1372
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1373
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1374
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1375
        <td>hashchange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1376
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1377
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1378
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1379
        <td>input</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1380
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1381
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1382
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1383
        <td>invalid</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1384
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1385
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1386
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1387
        <td>loadedmetadata</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1388
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1389
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1390
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1391
        <td>loadeddata</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1392
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1393
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1394
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1395
        <td>loadstart</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1396
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1397
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1398
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1399
        <td>offline</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1400
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1401
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1402
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1403
        <td>online</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1404
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1405
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1406
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1407
        <td>pagehide</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1408
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1409
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1410
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1411
        <td>pageshow</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1412
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1413
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1414
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1415
        <td>pause</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1416
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1417
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1418
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1419
        <td>play</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1420
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1421
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1422
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1423
        <td>playing</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1424
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1425
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1426
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1427
        <td>popstate</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1428
        <td>node-event-html5 or history</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1429
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1430
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1431
        <td>progress</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1432
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1433
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1434
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1435
        <td>ratechange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1436
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1437
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1438
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1439
        <td>readystatechange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1440
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1441
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1442
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1443
        <td>redo</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1444
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1445
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1446
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1447
        <td>seeking</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1448
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1449
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1450
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1451
        <td>seeked</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1452
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1453
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1454
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1455
        <td>show</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1456
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1457
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1458
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1459
        <td>stalled</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1460
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1461
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1462
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1463
        <td>suspend</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1464
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1465
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1466
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1467
        <td>timeupdate</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1468
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1469
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1470
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1471
        <td>undo</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1472
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1473
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1474
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1475
        <td>volumechange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1476
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1477
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1478
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1479
        <td>waiting</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1480
        <td>node-event-html5</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1481
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1483
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1484
        <td>touchstart</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1485
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1486
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1487
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1488
        <td>touchmove</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1489
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1490
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1491
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1492
        <td>touchend</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1493
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1494
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1495
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1496
        <td>touchcancel</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1497
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1498
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1499
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1500
        <td>gesturestart</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1501
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1502
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1503
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1504
        <td>gesturechange</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1505
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1506
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1507
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1508
        <td>gestureend</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1509
        <td>event-touch</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1510
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1512
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1513
        <td>transitionend or webkitTransitionEnd</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1514
        <td>transition</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1515
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1516
</tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1517
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1518
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1519
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1520
YUI({ filter: 'raw' }).use('selector-css3', 'datatable-sort', function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1521
    var data = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1522
        node = Y.one('#events');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1523
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1524
    node.all('td:nth-of-type(1)').each(function (node, i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1525
        data.push({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1526
            Event: node.get('text'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1527
            "Added By": node.next().get('text')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1528
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1529
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1530
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1531
    node.empty().addClass('yui3-skin-sam');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1532
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1533
    new Y.DataTable({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1534
        columns : [ 'Event', 'Added By' ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1535
        data    : data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1536
        sortable: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1537
    }).render(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1538
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1539
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1540
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1542
<h4 id="adding-to-the-dom-event-whitelist">Adding to the DOM event whitelist</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1544
<p>If you need to use an event that isn't included in this list, and not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1545
supplied by a synthetic event, you can expand the whitelist by adding the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1546
names to the <code>Y.Node.DOM_EVENTS</code> object.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1548
<pre class="code prettyprint">&#x2F;&#x2F; Allow for subscription to some mostly cross-browser mutation events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1549
Y.mix(Y.Node.DOM_EVENTS, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1550
    DOMNodeInserted: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1551
    DOMNodeRemoved: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1552
    DOMCharacterDataModified: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1553
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1554
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1556
<h2 id="facade-properties">Appendix B: EventFacade properties and methods</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1558
<h4 id="methods">Methods</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1559
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1560
    <dt><code>e.preventDefault()</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1561
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1562
            Prevents the default action associated with the event. E.g. page
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1563
            navigation from an &lt;a&gt;nchor <code>click</code> or form submission and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1564
            page reload from a &lt;form&gt; <code>submit</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1565
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1566
    <dt><code>e.stopPropagation()</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1567
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1568
            Stops the event from bubbling further up the DOM tree.  This does
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1569
            not prevent the default action if there is one.  Subsequent event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1570
            subscribers will be executed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1571
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1572
    <dt><code>e.stopImmediatePropagation()</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1573
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1574
            Stops the event from bubbling further up the DOM tree.  This does
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1575
            not prevent the default action if there is one.  Subsequent event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1576
            subscribers will NOT be executed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1577
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1578
    <dt><code>e.halt( [immediate=false] )</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1579
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1580
            Alias for <code>e.preventDefault(); e.stopPropagation();</code> or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1581
            <code>e.preventDefault(); e.stopImmediatePropagation();</code>, depending on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1582
            the <em>immediate</em> parameter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1583
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1584
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1585
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1586
<h4 id="basics">Basics</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1587
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1588
    <dt><code>e.type</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1589
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1590
            The name of the event. E.g. "click", "keyup", or "load".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1591
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1592
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1593
    <dt><code>e.target</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1594
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1595
            The Node instance that originated the event (see <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1596
            href="delegation.html">the description of event delegation</a> for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1597
            reference)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1598
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1599
    <dt><code>e.currentTarget</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1600
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1601
            The Node instance that subscribed to the event. In the case of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1602
            subscriptions from NodeLists, this is still the individual Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1603
            instance (see <a href="#nodelist-this">When I subscribe to an event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1604
            from a NodeList, <code>this</code> is the NodeList...</a>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1605
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1606
    <dt><code>e.relatedTarget</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1607
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1608
            For <code>mouseover</code> events, this will be the Node instance of where the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1609
            mouse travelled <em>from</em>.  For <code>mouseout</code>, it will be the Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1610
            that the mouse travelled <em>to</em>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1611
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1612
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1613
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1614
<h4 id="keyboard-event-properties">Keyboard event properties</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1615
    <dt><code>e.keyCode</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1616
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1617
            The unicode value of a non-character key in a <code>keypress</code> event or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1618
            any key in <code>keydown</code> or <code>keyup</code>.  See <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1619
            href="https://developer.mozilla.org/en/DOM/event.keyCode">event.keyCode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1620
            on MDC</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1621
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1622
    <dt><code>e.charCode</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1623
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1624
            The Unicode value of a character key pressed during a keypress
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1625
            event.  See <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1626
            href="https://developer.mozilla.org/en/DOM/event.charCode">event.charCode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1627
            on MDC</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1628
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1629
    <dt><code>e.shiftKey</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1630
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1631
            <code>true</code> if the shift key was depressed during a key event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1632
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1633
    <dt><code>e.ctrlKey</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1634
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1635
            <code>true</code> if the control key was depressed during a key event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1636
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1637
    <dt><code>e.altKey</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1638
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1639
            <code>true</code> if the alt/option key was depressed during a key event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1640
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1641
    <dt><code>e.metaKey</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1642
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1643
            <code>true</code> if the "Windows" key on PCs or command key on Macs was
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1644
            depressed during a key event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1645
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1646
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1647
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1648
<h4 id="mouse-event-properties">Mouse event properties</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1649
    <dt><code>e.button</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1650
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1651
            For <code>mouseup</code> events (<em>NOT <code>click</code> events</em>), indicates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1652
            which mouse button is pressed.<br>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1653
            <code>1</code> = left click, <code>2</code> = middle click, <code>3</code> = right click.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1654
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1655
    <dt><code>e.which</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1656
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1657
            Alias for e.button.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1658
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1659
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1660
    <dt><code>e.pageX</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1661
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1662
            The horizontal coordinate of the event relative to whole document.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1663
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1664
    <dt><code>e.pageY</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1665
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1666
            The vertical coordinate of the event relative to whole document.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1667
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1668
    <dt><code>e.clientX</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1669
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1670
            The horizontal coordinate of the event relative to viewport,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1671
            regardless of scrolling.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1672
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1673
    <dt><code>e.clientY</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1674
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1675
            The vertical coordinate of the event relative to viewport,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1676
            regardless of scrolling.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1677
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1678
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1679
    <dt>[<code>e.wheelDelta</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1680
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1681
            For <code>mousewheel</code> or <code>DOMMouseScroll</code> events, the pixel distance of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1682
            the scroll.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1683
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1684
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1685
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1686
<h4 id="touch-event-properties">Touch event properties</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1687
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1688
    <dt>[<code>e.touches</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1689
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1690
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1691
                An array of <code>Touch</code> objects, where each <code>Touch</code> object represents a finger
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1692
                currently touching the surface (regardless of the target of the current event).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1693
                For example, if you have two fingers on the surface, this array would have two
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1694
                <code>Touch</code> objects, one for each finger.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1695
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1696
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1697
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1698
                The common set of properties currently on a <code>Touch</code> object, which can be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1699
                relied up across environments, are <code>target</code>, <code>clientX</code>, <code>clientY</code>, <code>pageX</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1700
                <code>pageY</code>, <code>screenX</code>, <code>screenY</code> and <code>identifier</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1701
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1702
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1703
    <dt>[<code>e.targetTouches</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1704
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1705
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1706
                An array of <code>Touch</code> objects for every point of contact that is touching the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1707
                surface, and started on the element that is the target of the current event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1708
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1709
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1710
    <dt>[<code>e.changedTouches</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1711
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1712
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1713
                An array of <code>Touch</code> objects representing all touches that changed in this event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1714
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1715
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1716
            <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1717
               This property is most useful in <code>touchEnd</code> events, to identify the set of touches
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1718
               which were removed from the surface, which resulted in the firing of the event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1719
            </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1720
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1721
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1722
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1723
<h4 id="gesture-event-properties-currently-ios-specific">Gesture event properties (currently iOS specific)</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1724
<p>These properties are unique to Webkit on iOS currently, and are provided on the event facade when listening for the iOS <code>gesturestart</code>, <code>gesturechange</code> and <code>gestureend</code> multi-touch events.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1725
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1726
    <dt>[<code>e.scale</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1727
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1728
            See Apple's documentation for <a href="http://developer.apple.com/library/safari/documentation/UserExperience/Reference/GestureEventClassReference/GestureEvent/GestureEvent.html#//apple_ref/javascript/instp/GestureEvent/scale">scale</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1729
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1730
    <dt>[<code>e.rotation</code>]</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1731
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1732
            See Apple's documentation for <a href="http://developer.apple.com/library/safari/documentation/UserExperience/Reference/GestureEventClassReference/GestureEvent/GestureEvent.html#//apple_ref/javascript/instp/GestureEvent/rotation">rotation</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1733
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1734
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1735
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1736
<p>See the <a href="http://www.w3.org/TR/touch-events/">W3C Touch Events Specification</a>, derived from the Webkit model, for more details.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1737
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1738
<p>Synthetic events may add or modify event facade properties.  These should be included in the documentation for the specific synthetic event.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1739
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1740
<p>For more details, check out the <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1741
href="https://developer.mozilla.org/en/DOM/event#Properties">MDC
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1742
documentation</a>.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1743
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1744
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1745
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1746
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1747
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1748
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1749
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1750
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1751
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1752
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1753
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1754
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1755
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1756
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1757
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1758
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1759
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1760
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1761
<a href="#the-basics">The Basics</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1762
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1763
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1764
<a href="#listening-for-events">Listening for events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1765
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1766
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1767
<a href="#the-callback-and-the-event-object">The Callback and the Event Object</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1768
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1769
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1770
<a href="#epreventdefault-and-estoppropagation"><code>e.preventDefault()</code> and <code>e.stopPropagation()</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1771
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1772
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1773
<a href="#detaching-subscriptions">Detaching subscriptions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1774
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1775
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1776
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1777
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1778
<a href="#modules">What to <code>use()</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1779
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1780
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1781
<a href="#delegation">Event Delegation</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1782
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1783
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1784
<a href="#more">More Event API Goodness</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1785
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1786
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1787
<a href="#y-on">Subscribe from <code>Y</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1788
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1789
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1790
<a href="#once">One time subscriptions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1791
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1792
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1793
<a href="#grouping-subscriptions">Grouping subscriptions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1794
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1795
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1796
<a href="#extended-signature">Binding <code>this</code> and additional callback arguments</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1797
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1798
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1799
<a href="#detach-methods">More ways to clean up subscriptions</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1800
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1801
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1802
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1803
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1804
<a href="#simulate">Simulate browser events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1805
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1806
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1807
<a href="#synthetic-events">Synthetic Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1808
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1809
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1810
<a href="#creating-dom-events">Creating DOM events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1811
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1812
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1813
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1814
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1815
<a href="#troubleshootingfaq">Troubleshooting/FAQ</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1816
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1817
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1818
<a href="#function-reference">My callback is executing at the wrong time. What's going on?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1819
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1820
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1821
<a href="#wrong-this">I'm getting an error in my callback that "<code>(some object) has no method (someMethodOnMyObject)</code>". What am I missing?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1822
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1823
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1824
<a href="#which-events">What events can I subscribe to?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1825
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1826
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1827
<a href="#why-on-no-chain">Why isn't on() chainable?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1828
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1829
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1830
<a href="#y-on-vs-node-on">Why would I use <code>Y.on()</code> or <code>Y.delegate()</code> instead of <code>node.on()</code> and <code>node.delegate()</code>?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1831
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1832
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1833
<a href="#after"><code>EventTarget</code> also provides an <code>after()</code> method. How does that work for DOM events?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1834
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1835
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1836
<a href="#nodelist-this">When I subscribe to an event from a NodeList, <code>this</code> is the NodeList, not the individual Node.  What's up with that?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1837
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1838
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1839
<a href="#nodelist-delegate">Where is <code>nodelist.delegate()</code>?</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1840
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1841
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1842
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1843
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1844
<a href="#more-reading">More Reading</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1845
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1846
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1847
<a href="#page-lifecycle-events"><a href="domready.html">Page Lifecycle events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1848
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1849
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1850
<a href="#event-delegation"><a href="delegation.html">Event Delegation</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1851
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1852
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1853
<a href="#event-simulation"><a href="simulate.html">Event Simulation</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1854
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1855
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1856
<a href="#create-new-dom-events"><a href="synths.html">Create New DOM Events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1857
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1858
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1859
<a href="#working-with-touch-events"><a href="touch.html">Working With Touch Events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1860
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1861
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1862
<a href="#delegating-the-focus-and-blur-events"><a href="focus.html">Delegating the <code>focus</code> and <code>blur</code> Events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1863
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1864
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1865
<a href="#the-hover-mouseenter-and-mouseleave-events"><a href="mouseenter.html">The <code>hover</code>, <code>mouseenter</code>, and <code>mouseleave</code> Events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1866
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1867
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1868
<a href="#complex-keyboard-input-filtering"><a href="key.html">Complex Keyboard Input Filtering</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1869
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1870
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1871
<a href="#responding-to-events-outside-of-a-node"><a href="outside.html">Responding to Events <em>outside</em> of a Node</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1872
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1873
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1874
<a href="#monitoring-changes-to-input-and-textarea-values"><a href="valuechange.html">Monitoring Changes to <code>&lt;input&gt;</code> and <code>&lt;textarea&gt;</code> Values</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1875
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1876
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1877
<a href="#keyboard-accessible-contextmenu-events"><a href="contextmenu.html">Keyboard Accessible <code>contextmenu</code> Events</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1878
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1879
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1880
<a href="#the-tap-event"><a href="tap.html">The <code>tap</code> Event</a></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1881
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1882
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1883
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1884
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1885
<a href="#event-whitelist">Appendix A: Whitelisted DOM events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1886
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1887
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1888
<a href="#adding-to-the-dom-event-whitelist">Adding to the DOM event whitelist</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1889
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1890
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1891
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1892
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1893
<a href="#facade-properties">Appendix B: EventFacade properties and methods</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1894
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1895
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1896
<a href="#methods">Methods</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1897
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1898
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1899
<a href="#basics">Basics</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1900
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1901
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1902
<a href="#keyboard-event-properties">Keyboard event properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1903
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1904
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1905
<a href="#mouse-event-properties">Mouse event properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1906
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1907
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1908
<a href="#touch-event-properties">Touch event properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1909
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1910
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1911
<a href="#gesture-event-properties-currently-ios-specific">Gesture event properties (currently iOS specific)</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1912
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1913
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1914
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1915
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1916
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1917
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1918
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1919
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1920
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1921
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1922
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1923
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1924
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1925
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1926
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1927
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1928
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1929
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1930
                                        <li data-description="Use the Event Utility to attach simple DOM event handlers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1931
                                            <a href="basic-example.html">Simple DOM Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1932
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1933
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1934
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1935
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1936
                                        <li data-description="Using the synthetic event API to create a DOM event that fires in response to arrow keys being pressed.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1937
                                            <a href="synth-example.html">Creating an Arrow Event for DOM Subscription</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1938
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1939
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1940
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1941
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1942
                                        <li data-description="Supporting cross-device swipe gestures, using the event-move gesture events">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1943
                                            <a href="swipe-example.html">Supporting A Swipe Left Gesture</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1944
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1945
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1946
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1947
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1948
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1949
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1950
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1951
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1952
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1953
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1954
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1955
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1956
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1957
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1958
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1959
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1960
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1961
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1962
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1963
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1964
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1965
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1966
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1967
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1968
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1969
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1970
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1971
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1972
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1973
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1974
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1975
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1976
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1977
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1978
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1979
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1980
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1981
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1982
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1983
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1984
                                        <li data-description="Shows how to extend the base widget class, to create your own Widgets.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1985
                                            <a href="../widget/widget-extend.html">Extending the Base Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1986
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1987
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1988
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1989
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1990
                                        <li data-description="Example Photo Browser application.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1991
                                            <a href="../dd/photo-browser.html">Photo Browser</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1992
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1993
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1994
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1995
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1996
                                        <li data-description="Portal style example using Drag &amp; Drop Event Bubbling and Animation.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1997
                                            <a href="../dd/portal-drag.html">Portal Style Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1998
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1999
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2000
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2001
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2002
                                        <li data-description="Use IO to request data over HTTP.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2003
                                            <a href="../io/get.html">HTTP GET to request data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2004
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2005
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2006
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2007
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2008
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2009
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2010
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2011
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2012
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2013
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2014
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2015
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2016
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2017
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2018
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2019
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2020
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2021
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2022
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2023
    assets: '../assets/event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2024
    name: 'event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2025
    title: 'Event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2026
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2027
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2028
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2029
YUI.Env.Tests.examples.push('basic-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2030
YUI.Env.Tests.examples.push('synth-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2031
YUI.Env.Tests.examples.push('swipe-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2032
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2033
YUI.Env.Tests.examples.push('widget-extend');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2034
YUI.Env.Tests.examples.push('photo-browser');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2035
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2036
YUI.Env.Tests.examples.push('get');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2037
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2038
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2039
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2040
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2041
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2042
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2043
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2044
</html>