Skip to main content

Bug Tracker

Side navigation

#5130 closed bug (fixed)

Opened August 27, 2009 11:54AM UTC

Closed December 06, 2009 02:06AM UTC

show() sets "display:block" to inline element.

Reported by: DanTheMan Owned by:
Priority: major Milestone: 1.4
Component: effects Version: 1.4a1
Keywords: Cc:
Blocked by: Blocking:
Description

How to reproduce:

a. create inline element

a. hide element

a. add element to DOM using after()

a. show element

The element now has style display set to block.

Please see test page for a proof of concept.

Workaround: add the element to DOM before hiding it.

a. create inline element

a. add element using after()

a. hide element

a. show element

But that may lead to a flickering effect.

Attachments (1)
  • jquery-show.html (0.9 KB) - added by DanTheMan August 27, 2009 11:55AM UTC.

    Testcase: hide() , after(), show() makes inline element to block-level element.

Change History (4)

Changed August 27, 2009 11:59AM UTC by DanTheMan comment:1

Forgot to mention: bug applies to Firefox

Internet explorer does not exhibit this problem.

Changed September 21, 2009 04:53PM UTC by DanTheMan comment:2

Nobody interested?

How can I improve this bug report so developers are happy with it?

Changed November 25, 2009 01:42AM UTC by petersendidit comment:3

The fix for this is to replace:

// Reset the display
this.elem.style.display = this.options.display;

with

var old = jQuery.data(this.elem, "olddisplay");
this.elem.style.display = old ? old : this.options.display;

In fx.js in jQuery.fx.prototype.step

Changed December 06, 2009 02:06AM UTC by john comment:4

component: unfilledfx
resolution: → fixed
status: newclosed
version: 1.3.21.4a1