2

影響に基づいてレストランのリストをフィルタリングしようとしています。インド料理、アジア料理、メキシコ料理、ヨーロッパ料理などの一般的なカテゴリではなく、スライダーを使用したいと考えています。

レストランは

[{restaurant: 
    {name: 'The Apollon',
    thumb: 'apollon.jpg',
    type: 
        [{spicy: 5, type_id: 1}
        {garlic:3, type_id:2}
        {expensive:10, type_id:3}]}
}]

次に、汎用の JQuery UI スライダーを使用して、各スライダーの値を隠し要素に渡します。

ここで私は完全に立ち往生しています。JSON( .nospice .somespice .spicy ) の代わりにクラスを利用して を実行することで、1 つのスライダーで動作させることができますが、if (value >= 7) {$('.spicy').show();}より高度なクエリを実行する方法がわかりません(if x = >=7 AND y = >=3 AND z = >=5)

誰かがここで私を正しい方向に動かしたいですか? 何を読む必要がありますか。私がこれについて非常に間違った方法で行っている場合は、教えてください.

jsfiddle: http://jsfiddle.net/techii/9e2cJ/

4

1 に答える 1

2

jQueryには.filterメソッドがあります。.dataまた、div を使用してレストラン名とタイプを保存するために、div を使用してレストラン オブジェクトを保存することをお勧めします。

$(".restaurants > div").filter(function(){
   var info = $(this).data("info");
   // Some code to extract things like spicyness, expensiveness
   // Also some code to get the slider values...
   if (spicynessSliderValue <= spicyness && expensivenessSliderValue <= expensiveness)
   {
       return true;
   }
}).show();

あなたの場合、私は$.eachしかし、使用することをお勧めします:

$(".restaurants > div").each(function(){
   ...
   var isMatch = picynessSliderValue <= spicyness && expensivenessSliderValue <= expensiveness;
   $(this).toggle(isMatch); // like .show or .hide, but takes a boolean
})
于 2013-02-03T11:19:17.063 に答える