0

私はこれについて助けを求めています:

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

これはこれに対するフォローアップの質問です

しかし、これは「あなたの問題でここに来てください。私たちがあなたのためにそれを行います」というサイトではないので、特に1つの具体的な質問があります.

上記のjsfiddleでは、匿名のスライダーを使用しており、スライド/変更に反応する関数は、JSONから解析されたレストランをフィルタリング/照合することになっています。4 つのスライダーから値を抽出しようとしていますが、収集時にそれぞれの変数 (ambienceSliderValue など) と一致させる必要があるため、対応する JSON (ambienceRating) と比較できます。

var refreshRestaurant = 
    $(".restaurant > div").each(function(){
            // Some code to extract things like spicyness, expensiveness
            // this part should maybe be in the JSON object constructor above to push data? Perhaps I should use .val(); instead?
            var ambienceRating = $(this).data("ambienceRating");
            var spicyRating = $(this).data("spicyRating");
            var garlicRating = $(this).data("garlicRating");
            var expensiveRating = $(this).data("expensiveRating");

               // Also some code to get the slider values...


            var isMatch = ambienceSliderValue <= ambienceRating && spicySliderValue <= spicyRating && garlicSliderValue <= garlicRating && expensiveSliderValue <= expensiveRating;
            $(this).toggle(isMatch);
    })

名前付きスライダーを使用する唯一の解決策はありますか?

4

1 に答える 1

1

たとえば、コールバック関数からの変数の更新を示します。

HTML:

<div class="sliders">
    <div id='a'></div>
    <div id='b'></div>
    <div id='c'></div>
    <div id='d'></div>
</div>

JS:

$(function () {
  var vars={};
    $('.sliders div').slider({
        orientation: "horizontal",
        range: false,
        min: 0,
        max: 100,
        step: 1,
        value: 0,
        slide: refreshRestaurant,
        change: refreshRestaurant
    }); 

    function refreshRestaurant() {
     vars[this.id]=$(this).slider('value'); 
      console.log(vars);
    }
});

デモ;

于 2013-02-04T08:46:43.047 に答える