动态滑块值不起作用(ui.value)

时间:2015-05-31 01:11:30

标签: javascript jquery

我正在尝试打印某些动态滑块的值,但是它没有添加到输入中的值:

$(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/

1 个答案:

答案 0 :(得分:2)

由于您重复使用$newResult变量,因此需要在closure中保留每个引用:

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

<强> http://jsfiddle.net/fjs1pLv2/2/