Javascript jQuery滑块:只有最后一个滑块使用多个滑块在页面上工作
我正在制作一个包含多个滑块的页面,其中滑块的数量和选项根据用户的不同而不同。我有一个问题,所有的滑块都被创建和显示,但只有最后一个滑块是可拖动的 简单的jsfiddle来演示我所说的内容: 我不确定这里有什么问题。所有滑块的ID都是唯一的,我在html出现后创建滑块。有人知道发生了什么吗?谢谢关于FF 26、Chrome 31、IE 11的问题Javascript jQuery滑块:只有最后一个滑块使用多个滑块在页面上工作,javascript,jquery,jquery-ui,slider,Javascript,Jquery,Jquery Ui,Slider,我正在制作一个包含多个滑块的页面,其中滑块的数量和选项根据用户的不同而不同。我有一个问题,所有的滑块都被创建和显示,但只有最后一个滑块是可拖动的 简单的jsfiddle来演示我所说的内容: 我不确定这里有什么问题。所有滑块的ID都是唯一的,我在html出现后创建滑块。有人知道发生了什么吗?谢谢关于FF 26、Chrome 31、IE 11的问题 HTML: <div id="sliders" style="width: 100px"> </div> div.slide
HTML:
<div id="sliders" style="width: 100px">
</div>
div.slider {
margin-top: 5px;
margin-bottom: 30px;
}
JS:
var numberOfSliders = Math.floor(Math.random()*5) + 2;
for (var i=0; i < numberOfSliders; i++) {
// Insert HTML
var html = '<div>Slider '+i+'</div>'
+'<div class="slider" id="slider-'+i+'"></div>';
document.getElementById('sliders').innerHTML += html;
// Create Slider
$('#slider-'+i).slider({
value: Math.floor(Math.random()*10) + 1,
min: 0,
max: Math.floor(Math.random()*5) + 10,
step: 1,
orientation: "horizontal",
range: "min",
animate: true
});
}
console.log(document.getElementById('sliders').innerHTML);
var numberOfSliders=Math.floor(Math.random()*5)+2;
对于(变量i=0;i
问题在于,在每次循环迭代中都要替换内部html。
在每个循环迭代中,您将:
$('#sliders').append(html);
使用
.append()
只向DOM添加新元素,而不是替换
中的所有现有元素!真奇怪。我只是假设.innerHTML+=html与.append()具有相同的效果。。我不知道它会破坏DOM中的东西。谢谢