2015-05-31 29 views
3

我想打印一些動態滑塊的價值,但它不會添加到輸入值:動態滑塊值不工作(ui.value)

$(document).ready(function() { 
    var N = 10; 
    var initVal = 1; 

    for (var id = 1; id <= N; id++) { 

     var $newResult = $('<input/>', { 
      type: 'text', 
      id: 'result-' + id, 
      class: 'sliderText', 
      value: initVal 
     }); 

     var $newSlider = $("<div/>", { 
      id: 'slider-' + id, 
      class: 'ui-slider' 
     }).slider({ 
      range: 'min', 
      min: initVal, 
      max: N, 
      value: initVal, 
      step: 1, 
      slide: function(event, ui) { 
       $newResult.val(ui.value); // neither works $('#result-' + id) 
      } 
     }); 
     var $container = $("<div/>", { 
      id: 'sliderContainer-' + id 
     }).append($newResult).append($newSlider); 

     $("#showSldr").append($container); 
    } 
}); 

它似乎有什麼東西我不看不到,也許有人做:P

http://jsfiddle.net/fjs1pLv2/

回答

2

既然你重用$newResult變量,你需要保留在closure每個參考:

slide: (function($input) { 
    return function(event, ui) { 
     $input.val(ui.value); 
    }; 
    })($newResult) 

http://jsfiddle.net/fjs1pLv2/2/

+0

很奇怪有返回,因爲它使用的工作,直到我最終加入太多的內容和「特色」,以動畫的值:P –

+0

@ChazyChaz沒有被返回的值,該函數就是返回的內容。 –

+0

那麼我還在學習這個。我應該對所有的滑塊做同樣的事嗎?因爲我有其他人,並沒有返回功能正常工作。順便謝謝你的幫助:) –