Bug Tracker

Opened 14 years ago

Closed 14 years ago

#4080 closed bug (invalid)

Infinite recursion in speed method

Reported by: wichert Owned by:
Priority: major Milestone: 1.3.2
Component: core Version: 1.3.1
Keywords: Cc:
Blocked by: Blocking:


I have a reasonably simple overlay routine which inserts a few divs with a basic animation, and can remove then again after a fade. After upgrading to 1.3.1 this only works once: after trying to insert the divs in the DOM and reveal them a second time I get an infinite recursion in this code in jquery-1.3.1.js (lines 3847 to 3852):

		opt.complete = function(){
			if ( opt.queue !== false )
			if ( jQuery.isFunction( opt.old ) )
				opt.old.call( this );

opt.old.call is the same complete function, so this becomes an infinite recursion.

Change History (5)

comment:1 Changed 14 years ago by wichert

Further debugging shows that this statement is the culprit:

$(overlay).animate(opts.show_animate_params, opts.show_animate_options);

With the options defined as follows:

    show_animate_params : { opacity: 1.0 },
    show_animate_options : { duration: "slow" },

overlay is a collection containing a div element with about 20 child nodes.

comment:2 Changed 14 years ago by wichert

I retested this with jquery 1.2.6: this shows the exact same problem.

comment:3 Changed 14 years ago by dmethvin

Can you provide a simple test case? Often when I see this it is due to event bubbling causing the recursion; the test case would tell us a lot.

comment:4 Changed 14 years ago by wichert

I'll try to create one. In the meantime here is a page which shows this problem: http://demo.simplon.biz/Plone-UI-2009/Prototype/trunk/screens/index-editBar.html

You can trigger the problem by clicking on the hand-and-pencil icon in the top right and then clicking on the cancel button that appears at the top right. The second time you do that you'll get the infinite recursion.

comment:5 Changed 14 years ago by dmethvin

Resolution: invalid
Status: newclosed

Please reopen with a test case if the problem still exists.

Note: See TracTickets for help on using tickets.