0

jQueryMobileでaddClass関数を使用しています。コードでクラスが追加されていることがわかりますが、クラスに適用する必要のあるスタイルは無視されます。

クラスをhtmlに追加してページを更新すると、クラスのスタイルが設定されます。したがって、JQMがページをレンダリングする方法に関係があるように思われます。

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

3 に答える 3

1

プログラムでJQMコンテンツを変更した後、通常は拡張機能を更新する必要があります。これは、たとえば。を使用して実行できます$(".slider").slider("refresh");。さらに、拡張された要素は、拡張後に根本的に異なる構造になります(たとえば、単一のスライダーに多くの新しいDOM要素が追加されます)。クラスを適切なDOM要素に追加していない場合があります(jsfiddleなどを設定しない限りこれを確認できません)。

于 2012-11-27T17:06:58.200 に答える
1

http://api.jquery.com/addClass/のドキュメントを確認して.addClass()ください。

.例では、クラス名の先頭のピリオド()が省略されていることに注意してください。ピリオドを残すと、クラス名の一部として追加されます。これは、セレクターとしてのみ使用する必要があります。

この変更を行うと、コードが機能します。

...
$('.sliders').addClass('slidersPosTwo');//notice, no period before the class name
...
于 2012-11-27T19:59:43.937 に答える
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 に答える