2010-06-18 146 views
0

如果非要定義背景圖片:使用jQuery更改CSS值

#header 
{ 
    width: 100%; 
    background: url(/Content/images/header.jpg) -0 0 no-repeat; 
} 

,我要覆蓋在頁面加載後。不應該這個代碼工作?

$("#header").css('background-image', '/Content/images/aff/header_<%=affiliateID%>.jpg') 

編輯:如上所述,該腳本需要在頁面加載後運行...並且這裏是事情稍微複雜的地方。這是一個MVC應用程序...此代碼坐落在母版,但嵌套下來「的RenderPartial」控制內部: [上my.Master]

<% Html.RenderPartial("showLoginStatus"); %> 

然後就是showLoginStatus.ascx控制範圍內的是:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#header").css('background-image', '/Content/images/aff/header_<%=affiliateID%>.jpg') 
    alert('this'); 
} 
</script> 

當添加'document.ready'包裝時,altert從不會觸發。所以,與控制渲染時相關的東西正在摧毀一切。我更改的背景可能被處理了....它只是被重寫,因爲它存在於樣式表中。 (所有我需要做的就是從那裏刪除它?)scurries關閉以嘗試]

+1

檢查了這一點:http://stackoverflow.com/questions/253689/switching-div-background-image-with-jquery和http ://jquery-howto.blogspot.com/2009/08/can-set-change-css-background-image.html – 2010-06-18 14:19:28

+1

大量複製我感覺大聲笑 – Polaris878 2010-06-18 14:37:54

回答

2

你需要做頁面加載和多數民衆都要做一遍:

$(document).ready(function(){ 
    $("#header").css('background-image', 'url(/Content/images/aff/header_<%=affiliateID%>.jpg)'); 
}); 
+0

好吧...似乎很明顯,我打賭這是我的地方失敗的痕跡。但是,當我將「.ready」放入時,警報不再觸發。所以在我編輯的問題中完整的細節。 – justSteve 2010-06-18 15:36:33

+0

不知道你是否已經修復,但似乎你只是在css()方法的末尾忘了semikolon。除此之外,它應該工作。 – Marks 2010-06-21 08:25:57

0

使用此

$(document).ready(function(){ 
    $("#header").css('background', 'url(/Content/images/aff/header_<%=affiliateID%>.jpg) no-repeat'); 
}); 

你還必須添加「不重複」。

它需要使用多個樣式,試試這個:

$(document).ready(function(){ 
    $("#header").css({ 
     'width':'50%', 
    'background':'url(/Content/images/aff/header_<%=affiliateID%>.jpg) no-repeat' 
    }); 
});