Попытка клонировать div с помощью слайдера. Приведенный мной пример работает для клонирования, но у меня странное поведение. Все клонированные маркеры ползунка div только меняют дескриптор ползунка div.
Я думаю, это как-то связано с порядком загрузки вещей в браузер клиента? Я спрашиваю здесь, потому что я отлаживаю в chrome консоли разработчика, и это показывает, что у div есть правильно увеличенные идентификаторы, но слайдер работает неправильно.
HTML:
<body>
<div id="choices1">
<select name="selecttype" id="st1">
<option value="0">choice 1</option>
<option value="1">choice 2</option>
<option selected>N/A</option>
</select>
<p>
<input type="text" class="SliderText" readonly="readonly" id="s1" name="s1" size=1/>
</p>
<div class="slider" id="Sliders1"></div>
</div>
<button id="adddiv" type="submit" class="btn btn-success">Add Div w/ Slider</button>
</body>
Javascript:
<script type="text/javascript">
$('.slider').each(function(idx, elm) {
var name = elm.id.replace('Slider', '');
$('#' + elm.id).slider({
min: 0,
max: 50,
value: 1,
step: 1,
slide: function(event, ui) {
$('#' + name).val(ui.value);
}
});
});
function fixIds(elem, cntr) {
$(elem).find("[id]").add(elem).each(function() {
this.id = this.id.replace(/\d+$/, "") + cntr;
})
}
var cloneCntr = 2;
$("#adddiv").click(function () {
var div = $("#choices1").clone(true,true)
fixIds(div, cloneCntr);
div.insertAfter("#choices1")
cloneCntr++;
});
</script>