さまざまなカテゴリのリストがあります。リスト項目はすべてクリック可能です。ユーザーに 1 ~ 3 個のアイテムを選択してもらいたい。彼らは選択を切り替えることができますが、最大は常に 3 です。
私にとって難しいのは、他のカテゴリと組み合わせることができないいくつかの特別なカテゴリがあることです。
ユーザーがこれらのいずれかをクリックすると、他のすべてのカテゴリの選択が解除され、他のカテゴリを追加できなくなります (これらの項目には 1 つのカテゴリしか選択できません)。
例:
「車」が特別なカテゴリだとしましょう。Car をクリックすると、他のすべての選択が解除され、Car が選択され、他の何も選択できなくなります。ただし、Car をもう一度クリックして選択を解除すると、そこからロジックが最初からやり直されます。
私のコードに欠けているのは、このすぐ上の太字の部分です。
私のコード:
$j('.chooseCat li').on('click',function(){
var $this = $j(this); //list item clicked
var catId = $this.children("a").attr("rel"); // list item id
var specialCat = ['6','36','63'];
if ($this.hasClass("selected")) {
$this.removeClass("selected");
$j("#categorySuggestions p.error").hide("fast")
} else {
if( $j.inArray(catId, specialCat) !== -1 ) {
$j('.chooseCat li').removeClass("selected");
$this.addClass("selected");
} else {
if ($j('.chooseCat li.selected').length <= 2){
$this.addClass("selected");
} else {
$j("#categorySuggestions p.error").show("fast").html("You cannot select any more categories");
}
}
}
});
Iam の動作中の jsFiddle: http://jsfiddle.net/nfQum/9/