Posts tagged "dom"

Forcing browsers to rerender elements

Generally speaking browsers rerender elements as required – in response to DOM changes effected via JavaScript, for instance. There are times, though, when the browser (Internet Explorer, I'm looking at you!) needs a gentle nudge.

Forcing a UI redraw from JavaScript highlights the solution employed by Thomas Fuchs, creator of the popular JavaScript library script.aculo.us:

Element.addMethods({
    redraw: function (element) {
        element = $(element);
        var n = document.createTextNode(' ');
        element.appendChild(n);
        (function () { n.parentNode.removeChild(n); }).defer();
        return element;
    }
});

The post's first comment includes an alternative approach:

element.className = element.className;

I gather that there are situations in which this simple solution fails — it's no silver bullet — but it fixed a problem I encountered in IE8 earlier this evening so I'm pleased to have discovered it!