Page.show only works if "display: none" is inline style?


#1

All,

I have a div that I want to be hidden when the page displays, but then
have RJS code which will show it later (via either page.show(‘elem_id’)
or page[‘elem_id’].show).

If the “display: none” style for this element is specified in my
external stylesheet, I am unable to successfully show this element using
either of the methods mentioned above. If, however, I specify “display:
none” as an inline style on the element, then the RJS code to show the
element works.

Has anyone ever seen this behavior before?

As an aside, doing

page << "$(‘elem_id’).style.display = ‘block’;

always works regardless of how the display: none is specified.

Thanks,
Wes


#2

Has anyone ever seen this behavior before?

Yes…

http://wiki.script.aculo.us/scriptaculous/show/Element.show

The output is a little wonky, but at the top it says that you either
need
to have hidden it first using Element.hide or using an inline css
rule.