0

我在 jQuery Mobile 中使用 addClass 函数。我可以在代码中看到该类已添加,但应应用到它的样式被忽略了。

如果我将类添加到 html 并刷新页面,则该类是样式化的。所以在我看来,这可能与 JQM 如何呈现页面有关。

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

3 回答 3

1

查看以下文档.addClass()http ://api.jquery.com/addClass/

请注意示例如何省略.了类名开头的句点 ( )。如果您离开句点,那么它将作为类名的一部分添加,仅应用作选择器。

如果您进行此更改,您的代码将起作用:

...
$('.sliders').addClass('slidersPosTwo');//notice, no period before the class name
...
于 2012-11-27T19:59:43.937 回答
1

以编程方式修改 JQM 内容后,您通常需要刷新增强功能。例如,这可以通过$(".slider").slider("refresh");. 此外,增强后的元素在增强后具有完全不同的结构(例如,为单个滑块添加了许多新的 DOM 元素)。可能是您没有将类添加到正确的 DOM 元素(除非您设置 jsfiddle 或类似元素,否则无法验证这一点)。

于 2012-11-27T17:06:58.200 回答
1

代替 :

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

和:

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

更好的是,在这里您可以找到一个实时的 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');
于 2012-11-27T20:42:00.933 回答