2013-05-31 43 views
1

我想直接使用knockout'data-bind'修改CSS類的屬性,而不使用JQuery css()方法。直接使用knockout'data-bind'修改CSS類的屬性

我有一個組件(引導滑塊),我想根據滑塊值設置背景顏色。在他的主頁上,作者通過計算rgb組件並使用jquery css()方法應用它們。

我可以數據綁定css類中的屬性與淘汰賽,或者我必須堅持使用jQuery css()嗎?

編輯:我想改變在css類中描述的一部分組件的背景顏色,而不是整個組件的背景。

回答

1

jQuery css直接在元素上設置樣式屬性。這與style結合在敲除:http://knockoutjs.com/documentation/style-binding.html中所做的相同。所以,你應該能夠使用style綁定來完成你的任務。

+0

我已經嘗試過,但我想改變的屬性是在組件樣式表中的css類中。使用樣式綁定時,有什麼方法可以在類中選擇一個屬性? –

+0

您無法直接編輯在外部文件中定義的類。我不認爲我會推薦它,但你可以添加一個綁定到頁面上定義的'style'元素和一些覆蓋到CSS類。它會是這樣的:http://jsfiddle.net/rniemeyer/6VNdE/。至少這樣,任何使用該類的元素都會自動更新。 –

+0

這是一個替代方案,它使用自定義綁定處理程序來保留視圖模型中的一些邏輯:http://jsfiddle.net/rniemeyer/s4p9m/ –

1

您可以使用數據綁定與此類似:

data-bind="style: { background-color: colorRed() ? 'red' : 'black' }" 

通過改變colorRed()的值,你可以改變顏色爲紅色或黑色。也可以使用類似這樣的東西:

data-bind="style: { background-color: myColor() }" 

其中myColor()返回一個十六進制顏色。

+1

是的,但是我怎麼可以告訴大家,背景顏色我想改變的是一流的具體點嗎? –

0

一定要使用的backgroundColor代替背景色您可以使用此:

data-bind="style: { backgroundColor: color }"