1

ユーザーが事前に選択したヘアスタイルや髪の色などをカスタマイズできるアバターデザイナーを作成しています。

これは基本的に、アバターをカスタマイズするために使用できるラジオボタンを備えたフォームです。

私のフォームは、次の3つのクラスを持つDIVにラップされています。

<div id="container" class="hair-blonde skin-pink boy">

ラジオボタンの値を取得するクラスが必要です。したがって、ユーザーが髪の色をクリックすると、髪の色のラジオボタンの値がhair-blondeクラスを上書きします。

ToggleClassまたはaddClassは、変更するクラスを制御できないため、使用できません 。また、ヘアブロンドがヘアレッドに変わった場合、スクリプトはヘアブロンドを探しているため、スクリプトは機能しなくなります。

splitを使用して、クラスのリストを配列に変換できると思いました。ただし、クラスを交換しようとしても何も起こりません。

これが私が使用しているコードです:

$(".skincolour input").click(function(){
var newskincolour = $(this).val();
var skin_colour = $('#container').attr('class').split(' ')[1];
var skin_colour = newskincolour;
});

私もこれをバリエーションとして試しました:

$(".skincolour input").click(function(){
var newskincolour = $(this).val();
var skin_colour = $('#container').attr('class').split(' ')[1];
var skin_colour = $(".skincolour input").val();
});

誰かが私が間違っていることについていくつかの指針を教えてもらえますか?

4

2 に答える 2

1

あなたのアプローチはうまくいくかもしれませんが、要素のclass属性を上書きするのを忘れました。これを試して:

$(".skincolour input").click(function(){
    var newskincolour = $(this).val();
    var classes = $('#container').attr('class').split(' ');
    classes[1] = newskincolour;
    $('#container').attr('class', classes.join(' '));
});
于 2012-09-28T14:28:20.703 に答える
0

removeClassを使用して、同じカテゴリのクラスを削除し、その後に。を続けることができますaddClass

于 2012-09-28T14:25:19.340 に答える