X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fevent.js;h=d2e106a6aca9b48320f4cab347805cfe0060073e;hb=fde95fb5ccac0a2c303e4e8049bd3389a51ccd08;hp=128f78f8e8e18f0f41b524c241e32d11c03754e2;hpb=7d36ccfa8eb018fcf349e1f74e3a0a614385558f;p=jquery.git diff --git a/src/event.js b/src/event.js index 128f78f..d2e106a 100644 --- a/src/event.js +++ b/src/event.js @@ -37,11 +37,11 @@ jQuery.event = { // Init the element's event structure var events = jQuery.data( elem, "events" ) || jQuery.data( elem, "events", {} ), - handle = jQuery.data( elem, "handle" ) || jQuery.data( elem, "handle", function() { + handle = jQuery.data( elem, "handle" ) || jQuery.data( elem, "handle", function eventHandle() { // Handle the second event of a trigger and when // an event is called after a page has unloaded return typeof jQuery !== "undefined" && !jQuery.event.triggered ? - jQuery.event.handle.apply( arguments.callee.elem, arguments ) : + jQuery.event.handle.apply( eventHandle.elem, arguments ) : undefined; }); // Add elem as a property of the handle function @@ -405,7 +405,7 @@ jQuery.event = { special: { ready: { // Make sure the ready event is setup - setup: bindReady, + setup: jQuery.bindReady, teardown: function() {} }, @@ -667,6 +667,8 @@ jQuery.event.special.change = { var changeFilters = jQuery.event.special.change.filters; +} + function trigger( type, elem, args ) { args[0].type = type; return jQuery.event.handle.apply( elem, args ); @@ -795,24 +797,6 @@ jQuery.fn.extend({ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); }, - ready: function( fn ) { - // Attach the listeners - bindReady(); - - // If the DOM is already ready - if ( jQuery.isReady ) { - // Execute the function immediately - fn.call( document, jQuery ); - - // Otherwise, remember the function for later - } else { - // Add the function to the wait list - jQuery.readyList.push( fn ); - } - - return this; - }, - live: function( type, data, fn, thisObject ) { if ( jQuery.isFunction( data ) ) { if ( fn !== undefined ) { @@ -893,103 +877,6 @@ function liveConvert( type, selector ) { .replace(/ /g, "|")].join("."); } -jQuery.extend({ - isReady: false, - readyList: [], - // Handle when the DOM is ready - ready: function() { - // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { - if ( !document.body ) { - return setTimeout( jQuery.ready, 13 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If there are functions bound, to execute - if ( jQuery.readyList ) { - // Execute all of them - var fn, i = 0; - while ( (fn = jQuery.readyList[ i++ ]) ) { - fn.call( document, jQuery ); - } - - // Reset the list of functions - jQuery.readyList = null; - } - - // Trigger any bound ready events - jQuery( document ).triggerHandler( "ready" ); - } - } -}); - -var readyBound = false; - -function bindReady() { - if ( readyBound ) { return; } - readyBound = true; - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - return jQuery.ready(); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", function() { - document.removeEventListener( "DOMContentLoaded", arguments.callee, false ); - jQuery.ready(); - }, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", arguments.callee ); - jQuery.ready(); - } - }); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e){} - - if ( document.documentElement.doScroll && toplevel ) { - (function() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch( error ) { - setTimeout( arguments.callee, 0 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); - })(); - } - } - - // A fallback to window.onload, that will always work - jQuery.event.add( window, "load", jQuery.ready ); -} - jQuery.each( ("blur focus load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error").split(" "), function( i, name ) {