【发布时间】:2010-04-03 11:53:38
【问题描述】:
我的页面上有几个链接(在 <div id="theme-selector"> 内),它们允许您更改 CSS 样式表:
$('#theme-selector a').click(function(){
var path = $(this).attr('href');
$('head link').remove();
$('head').append('<link type="text/css" href="'+path+'" rel="stylesheet" />');
return false;
});
现在,在我更改页面样式后,我想使用以下代码(我在$('head').append 调用之后放置)获得新的背景颜色:
var bgcolor = $('body').css('background-color');
alert(bgcolor);
我认为,问题在于浏览器需要一些时间来下载新样式表,并且有时我会在警报消息中看到旧的背景颜色。是否有一些我可以绑定的事件,只有在页面上加载了所有样式表后才会提醒我?
目前,我能想到的只是使用setTimeout(function(){}, 5000);,这不是很好,因为如果加载页面上的所有 CSS 需要更长/更短的时间会怎样。
如果我需要澄清任何事情,请告诉我,我可以提供更多代码。
【问题讨论】:
-
有趣,谢谢 Pointy。我需要 background-color 属性来做一些 JQuery 魔术来重新加载我的图像,但是是的,这是一个很好的 cookie 实现。
标签: javascript jquery css events jquery-events