Bug Tracker

Opened 7 years ago

Closed 7 years ago

Last modified 5 years ago

#7315 closed bug (fixed)

$.fn.show fails to show element if element hidden with style rule

Reported by: mechismo Owned by: john
Priority: blocker Milestone: 1.4.4
Component: css Version: 1.4.3
Keywords: Cc:
Blocked by: Blocking:

Description

If an element is hidden using a style rule and you call show:

$("#foo").css("display","block").show();

Fails in 1.4.3 - versions < 1.4.3 behave as expected, the element is shown.

Test case:

http://jsfiddle.net/RxP32/

Steps to recreate:

Bug: Select jQuery version 1.4.3, run and click "Show" button. The element is not shown.

Expected behaviour: Select jQuery version < 1.4.3, run and click "Show" button. The element is shown as expected.

I understand setting the style to display:block prior to calling show is counter productive but the behaviour is so different to previous versions it's worthy of a bug

Change History (5)

comment:1 Changed 7 years ago by Rick Waldron

Component: unfiledcss
Priority: undecidedblocker
Status: newopen

Confirmed with 1.4.4rc1 - This is may have huge regression implications

http://jsfiddle.net/rwaldron/RxP32/2/

comment:2 Changed 7 years ago by kswedberg

I've committed a fix for this on github, along with tests. Would appreciate review before I send a pull request:

http://github.com/kswedberg/jquery/commit/a8d0c823f5a09de02f4de85d40f7a38edf63d79d

comment:3 Changed 7 years ago by snover

Milestone: 1.51.4.4
Owner: set to john
Status: openassigned

Gonna try to get this landed for 1.4.4. Thanks for catching it, kswedberg!

comment:4 Changed 7 years ago by Karl Swedberg

Resolution: fixed
Status: assignedclosed

For .show() with no arguments, only set display of elements in the second loop if they don't have style.display already set or if style.display isn't none. Fixes #7315.

Changeset: 6ab402dced3339d24ad007ecf3a6c3f5af3e7610

comment:5 Changed 7 years ago by Rick Waldron

#5343 is a duplicate of this ticket.

Note: See TracTickets for help on using tickets.