Side navigation
Ticket #3820: 3820.patch
File 3820.patch, 0.9 KB (added by iraebrasil, January 10, 2009 03:16AM UTC)
patch to make a queue before firing every liveHandler solves #3820
Index: src/event.js
===================================================================
--- src/event.js (revision 6078)
+++ src/event.js (working copy)
@@ -560,15 +560,23 @@
function liveHandler( event ){
var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
- stop = true;
+ stop = true,
+ queue = [];
jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
if ( !event.isImmediatePropagationStopped() && check.test(fn.type) ) {
var elem = jQuery(event.target).closest(fn.data)[0];
- if ( elem && fn.call(elem, event, fn.data) === false )
- stop = false;
+ // make a queue to fire events later to avoid bug #3820
+ if ( elem ) queue.push({
+ elem:elem,
+ fn: fn
+ });
}
});
+ jQuery.each(queue, function() {
+ if(this['fn'].call(this['elem'], event, this['fn'].data) === false )
+ stop = false;
+ });
return stop;
}
Download in other formats:
Original Format
File 3820.patch, 0.9 KB (added by iraebrasil, January 10, 2009 03:16AM UTC)
patch to make a queue before firing every liveHandler solves #3820
Index: src/event.js
===================================================================
--- src/event.js (revision 6078)
+++ src/event.js (working copy)
@@ -560,15 +560,23 @@
function liveHandler( event ){
var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
- stop = true;
+ stop = true,
+ queue = [];
jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
if ( !event.isImmediatePropagationStopped() && check.test(fn.type) ) {
var elem = jQuery(event.target).closest(fn.data)[0];
- if ( elem && fn.call(elem, event, fn.data) === false )
- stop = false;
+ // make a queue to fire events later to avoid bug #3820
+ if ( elem ) queue.push({
+ elem:elem,
+ fn: fn
+ });
}
});
+ jQuery.each(queue, function() {
+ if(this['fn'].call(this['elem'], event, this['fn'].data) === false )
+ stop = false;
+ });
return stop;
}