2012-11-27 38 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