428 lines
No EOL
60 KiB
HTML
428 lines
No EOL
60 KiB
HTML
<html><head><title>EventManager.js</title><link rel="stylesheet" type="text/css" href="../style.css" media="screen"/></head><body><div class="hl-main"><pre>
|
|
</span><span class="hl-comment">/**
|
|
* @class YAHOO.ext.EventManager
|
|
* Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides
|
|
* several useful events directly.
|
|
* See {@link YAHOO.ext.EventObject} for more details on normalized event objects.
|
|
* @singleton
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">ext</span><span class="hl-default">.</span><span class="hl-identifier">EventManager</span><span class="hl-default"> = </span><span class="hl-reserved">new function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">docReadyEvent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">docReadyProcId</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">docReadyState</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ieDeferSrc</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">resizeEvent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">resizeTask</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">fireDocReady</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">docReadyState</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">docReadyState</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">docReadyProcId</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">clearInterval</span><span class="hl-brackets">(</span><span class="hl-identifier">docReadyProcId</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">docReadyEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">docReadyEvent</span><span class="hl-code">.</span><span class="hl-identifier">fire</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">initDocReady</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-identifier">docReadyEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">documentready</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">addEventListener</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-code">, </span><span class="hl-quotes">"</span><span class="hl-string">DOMContentLoaded</span><span class="hl-quotes">"</span><span class="hl-code">, </span><span class="hl-identifier">fireDocReady</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Browser</span><span class="hl-code">.</span><span class="hl-identifier">isIE</span><span class="hl-brackets">){
|
|
</span><span class="hl-comment">// inspired by </span><span class="hl-url">http://www.thefutureoftheweb.com/blog/2006/6/adddomloadevent
|
|
</span><span class="hl-comment">
|
|
</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">write</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string"><s</span><span class="hl-quotes">'</span><span class="hl-code">+</span><span class="hl-quotes">'</span><span class="hl-string">cript id="ie-deferred-loader" defer="defer" src="</span><span class="hl-quotes">'</span><span class="hl-code"> +
|
|
</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">EventManager</span><span class="hl-code">.</span><span class="hl-identifier">ieDeferSrc</span><span class="hl-code"> || </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">SSL_SECURE_URL</span><span class="hl-brackets">)</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">"></s</span><span class="hl-quotes">'</span><span class="hl-code">+</span><span class="hl-quotes">'</span><span class="hl-string">cript></span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">ie-deferred-loader</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">readystatechange</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">readyState</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">complete</span><span class="hl-quotes">'</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">fireDocReady</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-reserved">else if</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Browser</span><span class="hl-code">.</span><span class="hl-identifier">isSafari</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">docReadyProcId</span><span class="hl-code"> = </span><span class="hl-identifier">setInterval</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">rs</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">readyState</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">rs</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">loaded</span><span class="hl-quotes">'</span><span class="hl-code"> || </span><span class="hl-identifier">rs</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">complete</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">fireDocReady</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-comment">// no matter what, make sure it fires on load
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-brackets">(</span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">load</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">fireDocReady</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/**
|
|
* Places a simple wrapper around an event handler to override the browser event
|
|
* object with a YAHOO.ext.EventObject
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope An object that becomes the scope of the handler
|
|
* @param {boolean} override If true, the obj passed in becomes
|
|
* the execution scope of the listener
|
|
* @return {Function} The wrapped function
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">wrap</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">wrappedFn</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">EventObject</span><span class="hl-code">.</span><span class="hl-identifier">setEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">fn</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">override</span><span class="hl-code"> ? </span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-builtin">window</span><span class="hl-code"> : </span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">EventObject</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">wrappedFn</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Appends an event handler
|
|
*
|
|
* @param {Object} element The html element to assign the
|
|
* event to
|
|
* @param {String} eventName The type of event to append
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope An object that becomes the scope of the handler
|
|
* @param {boolean} override If true, the obj passed in becomes
|
|
* the execution scope of the listener
|
|
* @return {Function} The wrapper function created (to be used to remove the listener if necessary)
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">eventName</span><span class="hl-code">, </span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">wrappedFn</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">wrap</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">eventName</span><span class="hl-code">, </span><span class="hl-identifier">wrappedFn</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">wrappedFn</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Removes an event handler
|
|
*
|
|
* @param {Object} element The html element to remove the
|
|
* event from
|
|
* @param {String} eventName The type of event to append
|
|
* @param {Function} wrappedFn The wrapper method returned when adding the listener
|
|
* @return {Boolean} True if a listener was actually removed
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">eventName</span><span class="hl-code">, </span><span class="hl-identifier">wrappedFn</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">eventName</span><span class="hl-code">, </span><span class="hl-identifier">wrappedFn</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Appends an event handler (shorthand for addListener)
|
|
*
|
|
* @param {Object} element The html element to assign the
|
|
* event to
|
|
* @param {String} eventName The type of event to append
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope An arbitrary object that will be
|
|
* passed as a parameter to the handler
|
|
* @param {boolean} override If true, the obj passed in becomes
|
|
* the execution scope of the listener
|
|
* @return {Function} The wrapper function created (to be used to remove the listener if necessary)
|
|
* @method
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires when the document is ready (before onload and before images are loaded)
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope An object that becomes the scope of the handler
|
|
* @param {boolean} override If true, the obj passed in becomes
|
|
* the execution scope of the listener
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">onDocumentReady</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">docReadyEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">initDocReady</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-identifier">docReadyEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers.
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope An object that becomes the scope of the handler
|
|
* @param {boolean} override If true, the obj passed in becomes
|
|
* the execution scope of the listener
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">onWindowResize</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">resizeEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">resizeEvent</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">CustomEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">windowresize</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">resizeTask</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">ext</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">DelayedTask</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-identifier">resizeEvent</span><span class="hl-code">.</span><span class="hl-identifier">fireDirect</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getViewportWidth</span><span class="hl-brackets">()</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getViewportHeight</span><span class="hl-brackets">())</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-brackets">(</span><span class="hl-builtin">window</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">resize</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-identifier">resizeTask</span><span class="hl-code">.</span><span class="hl-identifier">delay</span><span class="hl-brackets">(</span><span class="hl-number">50</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-identifier">resizeEvent</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-code">, </span><span class="hl-identifier">override</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Removes the passed window resize listener.
|
|
* @param {Function} fn The method the event invokes
|
|
* @param {Object} scope The scope of handler
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeResizeListener</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">resizeEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">resizeEvent</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-brackets">(</span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* @class YAHOO.ext.EventObject
|
|
* EventObject exposes the Yahoo! UI Event functionality directly on the object
|
|
* passed to your event handler. It exists mostly for convenience. It also fixes the annoying null checks automatically to cleanup your code
|
|
* (All the YAHOO.util.Event methods throw javascript errors if the passed event is null).
|
|
* To get an EventObject instead of the standard browser event,
|
|
* your must register your listener thru the {@link YAHOO.ext.EventManager} or directly on an Element
|
|
* with {@link YAHOO.ext.Element#addManagedListener} or the shorthanded equivalent {@link YAHOO.ext.Element#mon}.<br>
|
|
* Example:
|
|
* <pre><code>
|
|
fu<>nction handleClick(e){ // e is not a standard event object, it is a YAHOO.ext.EventObject
|
|
e.preventDefault();
|
|
var target = e.getTarget();
|
|
...
|
|
}
|
|
var myDiv = getEl('myDiv');
|
|
myDiv.mon('click', handleClick);
|
|
//or
|
|
YAHOO.ext.EventManager.on('myDiv', 'click', handleClick);
|
|
YAHOO.ext.EventManager.addListener('myDiv', 'click', handleClick);
|
|
</code></pre>
|
|
* @singleton
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">ext</span><span class="hl-default">.</span><span class="hl-identifier">EventObject</span><span class="hl-default"> = </span><span class="hl-reserved">new function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-comment">/** The normal browser event */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** The button pressed in a mouse event */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-code"> = -</span><span class="hl-number">1</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** True if the shift key was down during the event */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">shiftKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** True if the control key was down during the event */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** True if the alt key was down during the event */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">altKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">BACKSPACE</span><span class="hl-code"> = </span><span class="hl-number">8</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB</span><span class="hl-code"> = </span><span class="hl-number">9</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">RETURN</span><span class="hl-code"> = </span><span class="hl-number">13</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ESC</span><span class="hl-code"> = </span><span class="hl-number">27</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">SPACE</span><span class="hl-code"> = </span><span class="hl-number">32</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">PAGEUP</span><span class="hl-code"> = </span><span class="hl-number">33</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">PAGEDOWN</span><span class="hl-code"> = </span><span class="hl-number">34</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">END</span><span class="hl-code"> = </span><span class="hl-number">35</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">HOME</span><span class="hl-code"> = </span><span class="hl-number">36</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LEFT</span><span class="hl-code"> = </span><span class="hl-number">37</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">UP</span><span class="hl-code"> = </span><span class="hl-number">38</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">RIGHT</span><span class="hl-code"> = </span><span class="hl-number">39</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOWN</span><span class="hl-code"> = </span><span class="hl-number">40</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DELETE</span><span class="hl-code"> = </span><span class="hl-number">46</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/** Key constant @type Number */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">F5</span><span class="hl-code"> = </span><span class="hl-number">116</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/** @private */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">setEvent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">shiftKey</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">shiftKey</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">altKey</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">altKey</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-reserved">else</span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-code"> = -</span><span class="hl-number">1</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">shiftKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">altKey</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Stop the event. Calls YAHOO.util.Event.stopEvent() if the event is not null.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">stopEvent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">stopEvent</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Prevents the browsers default handling of the event. Calls YAHOO.util.Event.preventDefault() if the event is not null.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/** @private */
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">isNavKeyPress</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> >= </span><span class="hl-number">33</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code"> <= </span><span class="hl-number">40</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Cancels bubbling of the event. Calls YAHOO.util.Event.stopPropagation() if the event is not null.
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">stopPropagation</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">stopPropagation</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the key code for the event. Returns value from YAHOO.util.Event.getCharCode() if the event is not null.
|
|
* @return {Number}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getCharCode</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getCharCode</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns a browsers key for a keydown event
|
|
* @return {Number} The key code
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getKey</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">.</span><span class="hl-identifier">charCode</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">.</span><span class="hl-identifier">keyCode</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the x coordinate of the event. Returns value from YAHOO.util.Event.getPageX() if the event is not null.
|
|
* @return {Number}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getPageX</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getPageX</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the y coordinate of the event. Returns value from YAHOO.util.Event.getPageY() if the event is not null.
|
|
* @return {Number}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getPageY</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getPageY</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the time of the event. Returns value from YAHOO.util.Event.getTime() if the event is not null.
|
|
* @return {Number}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTime</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTime</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the page coordinates of the event. Returns value from YAHOO.util.Event.getXY() if the event is not null.
|
|
* @return {Array} The xy values like [x, y]
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getXY</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getXY</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Gets the target for the event. Returns value from YAHOO.util.Event.getTarget() if the event is not null.
|
|
* @return {HTMLelement}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Walk up the DOM looking for a particular target - if the default target matches, it is returned.
|
|
* @param {String} className The class name to look for or null
|
|
* @param {String} tagName (optional) The tag name to look for
|
|
* @return {HTMLelement}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">findTarget</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code">, </span><span class="hl-identifier">tagName</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">tagName</span><span class="hl-brackets">) </span><span class="hl-identifier">tagName</span><span class="hl-code"> = </span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toLowerCase</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">function </span><span class="hl-identifier">isMatch</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">el</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code"> && !</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)){
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">tagName</span><span class="hl-code"> && </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">.</span><span class="hl-identifier">toLowerCase</span><span class="hl-brackets">()</span><span class="hl-code"> != </span><span class="hl-identifier">tagName</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">t</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">t</span><span class="hl-code"> || </span><span class="hl-identifier">isMatch</span><span class="hl-brackets">(</span><span class="hl-identifier">t</span><span class="hl-brackets">)){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">t</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">p</span><span class="hl-code"> = </span><span class="hl-identifier">t</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">b</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">body</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-identifier">p</span><span class="hl-code"> && </span><span class="hl-identifier">p</span><span class="hl-code"> != </span><span class="hl-identifier">b</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">isMatch</span><span class="hl-brackets">(</span><span class="hl-identifier">p</span><span class="hl-brackets">)){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">p</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-identifier">p</span><span class="hl-code"> = </span><span class="hl-identifier">p</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
</span><span class="hl-comment">/**
|
|
* Gets the related target. Returns value from YAHOO.util.Event.getRelatedTarget() if the event is not null.
|
|
* @return {HTMLElement}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getRelatedTarget</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getRelatedTarget</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Normalizes mouse wheel delta across browsers
|
|
* @return {Number} The delta
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getWheelDelta</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">e</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">browserEvent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">delta</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">wheelDelta</span><span class="hl-brackets">){ </span><span class="hl-comment">/* IE/Opera. */
|
|
</span><span class="hl-identifier">delta</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">wheelDelta</span><span class="hl-quotes">/</span><span class="hl-string">120;
|
|
</span><span class="hl-quotes">/</span><span class="hl-code">* </span><span class="hl-identifier">In Opera </span><span class="hl-number">9</span><span class="hl-code">, </span><span class="hl-identifier">delta differs </span><span class="hl-reserved">in </span><span class="hl-identifier">sign as compared to IE</span><span class="hl-code">. *</span><span class="hl-quotes">/</span><span class="hl-string">
|
|
if(window.opera) delta = -delta;
|
|
}else if(e.detail){ </span><span class="hl-quotes">/</span><span class="hl-code">* </span><span class="hl-identifier">Mozilla </span><span class="hl-reserved">case</span><span class="hl-code">. *</span><span class="hl-quotes">/</span><span class="hl-string">
|
|
delta = -e.detail</span><span class="hl-quotes">/</span><span class="hl-number">3</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">delta</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns true if the control, shift or alt key was pressed during this event.
|
|
* @return {Boolean}
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hasModifier</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">ctrlKey</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">altKey</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">shiftKey</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}()</span><span class="hl-default">;
|
|
|
|
</span></pre></div><hr>Copyright © 2006 Jack Slocum. All rights reserved.</body></html> |