1

我有一个使用以下代码动态创建滑块元素的函数:

function NewDiv(){
        for (var count=0; count < parseFloat(sessvars.storey_count); count++)
            {
               var string="<br><div id='my-slider"+count+"' class='dragdealer'><div class='red-bar handle'><span id='drag-button"+count+"'>drag me</span></div></div>";
               $("body").append(string);

               var slider_id ="my-slider"+count;
               var drag_button_id = "drag-button"+count;

               //OBJECT GETS CREATED BELOW
               new Dragdealer(slider_id,{horizontal: true,x:Math.random(),animationCallback: function(x, y){
               document.getElementById(drag_button_id).innerHTML = x.toFixed(2);
            }
        });
    }
}

但是,animationCallback每次移动滑块时调用的函数都必须嵌入到函数侦听器中,并且我必须以某种方式将其绑定到可能的就绪事件。这是在滑块值更改时更新滑块的最佳方法吗?如果是这样,我该怎么做呢?

4

1 回答 1

1

您的所有animationCallback函数都关闭了同一个drag_button_id变量。
因此,他们都更新了最后一个。

您需要将for循环体包装在一个单独的函数中,以便每个闭包都有自己的变量(因为 Javascript 没有块范围)。

于 2013-08-18T15:11:41.520 回答