2012-11-27 37 views
0

在jQuery Mobile中使用addClass函數。我可以在代碼中看到該類已添加,但其應用於其的樣式將被忽略。jQuery Mobile addClass不影響樣式

如果我將這個類添加到html並刷新頁面,那麼這個類就是樣式的。所以在我看來,這可能與JQM呈現頁面的方式有關。

$('.slider1').click(function(){ 
     $('.sliders').addClass('.slidersPosTwo'); 
    }); 

回答

1

退房爲.addClass()的文檔:http://api.jquery.com/addClass/

注意的例子來說明如何省略在類名的開始時間(.)。如果你離開這段時間,那麼它將作爲類名稱的一部分添加,它只能用作選擇器。

,如果你做這個改變,你的代碼將工作:

... 
$('.sliders').addClass('slidersPosTwo');//notice, no period before the class name 
... 
1

以編程方式修改JQM內容後,通常需要刷新增強功能。 這可以通過例如$(".slider").slider("refresh");來完成。 此外,增強後的元素具有完全不同的結構(例如,爲單個滑塊添加了許多新的DOM元素)。可能會出現這種情況,您並未將您的類添加到適當的DOM元素中(除非您設置了jsfiddle或類似方法,否則無法驗證此類)。

+0

JQM不增強.slider1或。 slider1,那裏只是我給那些類的div。當我明天回到工作崗位時嘗試「刷新」,但我不認爲這是問題。謝謝 – Evans

1

替換:

$('.sliders').addClass('.slidersPosTwo'); 

有:

$('.sliders').addClass('slidersPosTwo'); 

更妙的是,here你可以找到一個活的jsfiddle例子如何修改每個滑塊元素。例如:

// Slider label 
$('div[data-role="fieldcontain"] label#slider-label').addClass('custom-slider-label'); 
// Slider text box 
$('div[data-role="fieldcontain"] input#slider').addClass('custom-slider'); 
// Slider element 
$('div[data-role="fieldcontain"] div[role="application"]').addClass('custom-slider-element'); 
// Slider button 
$('div[data-role="fieldcontain"] div[role="application"] a span').addClass('custom-slider-button'); 
+0

你的'替換:'和'與:'是一樣的。另外'slider1'只是我的div的名稱。它也可能是'dsafdsaf',它不是JQM組件。 – Evans

+0

我修復了我的答案。你在這部分代碼中有一個額外的點:('.slidersPosTwo'),它應該只是('slidersPosTwo')。因爲這是不需要的類名。 (點類)標識符。 – Gajotres