jqtransform and collapsed DIV

Posted by Marco on Stack Overflow See other posts from Stack Overflow or by Marco
Published on 2009-11-02T12:48:00Z Indexed on 2010/06/10 7:13 UTC
Read the original article Hit count: 344

Filed under:
|
|
|
|

Hello, I am using a jQuery plugin called: jqtransform

This plugin uses JavaScript to apply CSS styles to form elements.

The problem that I have consists in the following scenario:

I’m building a search page, with a advanced search option. When the page loads, the div called “advancedSearch” is hidden, and it will only show if the user clicks a element. Inside the div#advancedSearch I have several form elements.

However, if I hide the div#advancedSearch with the CSS style: “diplay:none;”, the jqtransform plugin doesn’t work correctly with the elements that are hidden. So my solution was to hide the div#advancedsearch with JavaScript. This actually works, and it does not matter if it’s done after the document is ready or not.

But… with the JavaScript solution, the div#advancedSearch stays visible for a couple of milliseconds… which is visually annoying.

So I was wondering if the solution to this problem would be in the CSS, or in correcting the jqtransform plugin, or even in finding a way to immediately hide the div#advancedSearch with JS making it immediately hidden.


UPDATE 1

After jeerose comment I decided to place here my function (please note that the <%= %> are ASP.Net tags, that I use to get the images path)

$('.toggleAdvancedSearch').click(function() {
    $('#advancedSearchWrap').slideToggle(250);
    $('form.jqtransform').jqTransform({ imgPath: '<%= ResolveClientUrl("~/masterpages/img/jqtransform/") %>' });
    return false;
});


UPDATE 2

To test the problem, I did the following:

Added another element to the page, with the ID “applyStyle”, and onClick I call the $('form').jqTransform();

Disabled the the $('form').jqTransform(); from the load of the page.

If I press the a#applyStyle, before expanding the div#advancedSearch I get the same problem that I had.

But if I expand the the div#advancedSearch and press the the a#applyStyle after, the problem is solved.

However, if I run the page with the $('form').jqTransform(); function on the load, I cannot reapply it after with the pressing of the a#applyStyle.

I think that the solution could be: disabling the all the elements that are inside the div#advancedSearch, and on the same function that expands the div, make It also apply the styles to the elements that are inside the div#advancedSearch.

However, I don’t know how to do this (nether if this will work).


PS: This seems to be a known issue with the plugin, but I cannot wait indefinitely for a solution.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery