I am new to jquery, and I am trying to load HTML and CSS from a database and
have them applied dynamically to the document. The CSS is returned as a
string and I am using the cssEngine plugin to change the CSS:
$.cssEngine.createStyle(myCSS,'page_theme');
Everything is working fine, the CSS gets applied correctly, however, as I
toggle between different CSS the screen does not seem to completely redraw -
until the window is resized. For example, between two sets of CSS, the
background color changes - but it doesn't update until the window is
resized. Then it redraws correctly. So my question is, is there someway to
force a redraw?
The createStyle method from the ccEngine plugin source is below:
if($.browser.msie){
rules=document.createElement("style");
rules.setAttribute('type', 'text/css');
rules.styleSheet.cssText=cssText;
$("head")[0].appendChild(rules);
}else
var rules = $("head").append('<style
type="text/css">'+cssText+'</style>')[0].lastChild;
if(id)
$(rules).attr("id", id);
var fClasses = this.classes || this.getClasses(true);
var obj = rules.styleSheet ? rules.styleSheet : (rules.sheet ||
document.styleSheets[document.styleSheets.length-1]);
$.each((obj.cssRules || obj.rules), function(){fClasses.push(this);});
return rules;
}
};