javascript样式表重新加载延迟影响DOM?

时间:2011-09-02 16:08:17

标签: javascript jquery css dom

function switchTemplate(stylePath){
    var ns = $('<link>', {
            href: stylePath,
            id: 'themeStyle',
            type: 'text/css', 
            rel: 'stylesheet'
        });
    $('#themeStyle').replaceWith(ns);
    resetPops();
    positionElements();
    $('#video-overlay').show();
}

样式表正在正确加载,并在短暂延迟后显示,但positionElements函数(使用offset()将#video-overlay定位在视频元素上)无法正确触发。我猜它还没有新的DOM位置?

我有positionElements();绑定到窗口调整大小,当我在切换样式表后调用它时,一切都到了正确的位置。

我想我可以建立一个计时器延迟,但这似乎并不特别可靠。是否有其他事件我可以将positionElements()函数绑定以确保它是最新的?

1 个答案:

答案 0 :(得分:2)

此SO问题的答案显示了如何确定样式表是否已完全加载(SO Question)。从那里你可以移动任何在加载到这个自定义事件后需要发生的函数。