2010-08-16 28 views
1

我想在用戶使用jQuery UI Themeselector更改頁面主題時更改主體背景顏色。如何通過ThemeSelector更改背景顏色以匹配jQuery UI主題?

我已經試過這

function updateBodyBackground() { 
    $("body").css('background-color', $('.ui-widget-header:first").css("background-color") + ' !important;'); 
} 

然後我把它的文件準備(以設置初始主題背景)和我將它設置爲這樣的ThemeSelector OnClose事件;

$function() { 
    updateBodyBackground(); 
    $('#switcher').themeswitcher({ expires: 365, path: '/', loadTheme: "sunny", onClose: updateBodyBackground }); 
} 

在Firefox中沒有做任何事情,似乎是Chrome上的一個變化,選擇器在IE8中似乎不起作用。

有關如何更改背景以更好地匹配選定的jQuery UI主題的任何建議?

謝謝!

回答

0

巴吉修復使用超時...

查找功能updateCSS()themeswitchertool.js

內部之後 $( 「頭」)追加(cssLink)。

添加下面的線增加超時,如果它仍然無法正常工作......

插入 的setTimeout(「$( '主體'),CSS( '背景色',$(」。 ui-widget-header:first')。css('background-color'))「,2000);

0

你必須在你的js錯誤(使用的「,而不是」):

$('.ui-widget-header:first") 

應該是:

$('.ui-widget-header:first') 

但是我發現,這個工程沒有必要投入Themeswitchertool。 .js,將setTimeout降到500,所以它變化更快。

function updateBodyBackground() {setTimeout("$('body').css('background-color', $('.ui-widget-header:first').css('background-color'))", 500); 
} 

$('#switcher').themeswitcher({ expires: 365, path: '/', loadTheme: "sunny", onClose: updateBodyBackground }); 
1

更好的方法是不使用計時器,只是我們ËjQueryUI的CSS類與背景色您尋找的一個,在我來說,我喜歡通過選擇背景色:ui-state-hover

<div id= "main_background" class= "ui-state-hover"> 
// Your Content 
</div> 

由於id過的遊樂設施都class設置,使用您的id刪除或更改ui-state-hover使用的任何不良設置,例如背景圖像:

#main_background { 
    position: relative; 
    top: 0px; 
    left: 0px; 
    width: 800px; 
    height: 742px; 
    margin: 0px; 
    border: 0px; 
    padding: 5px; 
    background-image:none; // kills the background url (image) that ui-state-hover sets 
} 
相關問題