2013-07-11 69 views
0

我的jquery-ui範圍滑塊行爲不合邏輯。任何人都可以解釋爲什麼只有一個滑塊在這裏工作?請注意,在實際頁面上有兩個以上的滑塊。jquery ui範圍

http://jsfiddle.net/uVeUD/

這段代碼的一點是要改變我的所有滑塊一次使用的代碼變量。但是,正如你可以在小提琴中看到的那樣,如果它與min的值不同,它將不起作用。這是什麼原因?

$("div.slider-div").each(function(){ 
    obj = $("input", $(this).parent()); 
    $(this).slider({ 
     range: "min", 
     value: obj.val(), 
     min: obj.attr("min"), 
     max: obj.attr("max"), 
     slide: function(event, ui) { 
      $("input", $(this).parent()).val(ui.value); 
      $("input", $(this).parent()).change(); 
     } 
    }); 

    obj.val($(this).slider("value")); 
}); 

我需要的東西,工作,所以我願意接受其他建議的滑塊,如果沒有人能解決這個問題。

回答

2

obj是全球性的,你傳遞的字符串,而不是整數滑塊的選項:

$(".slider-div").each(function() { 
    var obj = $(this).siblings('input'); 
    $(this).slider({ 
     range: "min", 
     value: parseInt(obj.val(),10), 
     min : parseInt(obj.attr("min"),10), 
     max : parseInt(obj.attr("max"),10), 
     slide: function (event, ui) { 
      $(event.target).siblings('input').val(ui.value).trigger('change'); 
     } 
    }); 
}); 

FIDDLE

您還可以設置的選項滑塊與數據屬性。

+0

好點。所以我的答案只是一個答案:) – WooCaSh

+0

@WooCaSh - 你的答案工作得很好,但它的工作原理是滑塊將從數據屬性中獲得選項,問題實際上是將字符串傳遞給期望整數的選項。 – adeneo

+0

那就是我喜歡的原因。即使我錯了,我也可以從別人身上學到一些東西。 – WooCaSh

1

將attr更改爲data-val而不是val。看看這裏:

<input type="range" style="border:0px;margin-left:10px;" value="40" data-min="8" data-max="72" id="shadow-size-2"> 

http://jsfiddle.net/uVeUD/1/

難道你想要什麼?