実際のドロップダウンを使用する代わりに、リンクと(将来的には画像)をクリックしてオプションを選択できるようにすることで、ドレスアップしているドロップダウンオプションがたくさんあるフォームがあります。多くのドロップダウンがあり、ほとんどすべてが同じ基本的な考え方を繰り返します。いくつかは、異なる変数だけで文字通り繰り返されます。そのうちの 1 つの HTML を次に示します。
<tr class="box1">
<td>
<select id="cimy_uef_7">
<option value="Boy">Boy</option>
<option value="Girl">Girl</option>
</select>
</td>
</tr>
次に、対応する洗練されたリンクをクリックして、ドロップダウンで対応するオプションを選択します。
<div id="genderBox1">
<div class="gender"><a class="boy" href="">Boy</a></div>
<div class="gender"><a class="girl" href="">Girl</a></div>
</div>
したがって、リンク「Boy」をクリックすると、対応するドロップダウン値「Boy」が選択されます。複数の Box# があるため、新しい変数を使用して毎回 jQuery を繰り返すことができますが、確かにもっと短い方法があります。これを機能させるjQueryは次のとおりです。
//Box1 Gender
var Gender1 = $('select#cimy_uef_7');
var Boy1 = $("#genderBox1 .gender a.boy");
var Girl1 = $("#genderBox1 .gender a.girl");
//On Page Load - Check Gender Box 1 Selection and addClass to corresponding div a
if ( $(Gender1).val() == "Boy" ) {
$(Boy1).addClass("selected");
} else {
$(Boy1).removeClass("selected");
}
if ( $(Gender1).val() == "Girl" ) {
$(Girl1).addClass("selected");
} else {
$(Girl1).removeClass("selected");
}
//On Click - Change Gender Box 1 select based on image click
$(Boy1).click(function(event) {
event.preventDefault();
$(this).addClass("selected");
$(Gender1).val("Boy");
$(Girl1).removeClass("selected");
});
$(Girl1).click(function(event) {
event.preventDefault();
$(this).addClass("selected");
$(Gender1).val("Girl");
$(Boy1).removeClass("selected");
});
短縮するための私の考えは、ボックスごとに変数のリストを作成し、1、2、3、4 の数字を循環させ、jQuery に変数ごとに同じ # を取得させることでしたが、方法がわかりません。それをするために。
質問を改善するために他に提供できることがあれば教えてください。私はまだjQueryの初心者なので、これはこのコードを短くするための私の最良のアイデアですが、もっと良いアイデアが世の中にあると確信しています.