我有一个使用以下代码动态创建滑块元素的函数:
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
函数必须嵌入在函数侦听器中,而且我必须以某种方式将其绑定到ready事件。这是使滑块的值更改时更新滑块的最佳方法吗?如果是这样,我该怎么做呢? 最佳答案
您的所有animationCallback
函数都在同一drag_button_id
变量上关闭。
因此,它们都更新最后一个。
您需要将for
循环的主体包装在单独的函数中,以便每个闭包都具有自己的变量(因为Javascript没有块作用域)。
关于javascript - 如何将动态创建的对象绑定(bind)到文档就绪事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18300271/