Этот фрагмент кода работает для всех существующих html-папок, но как заставить его работать для динамически добавленных падений
Вот код jquery
$(document).ready(function () {
$('select.select').each(function () {
var title = $(this).attr('title');
if ($('option:selected', this).val() != '') {
title = $('option:selected', this).text();
$(this)
.css({
'z-index': 10,
'opacity': 0,
'-khtml-appearance': 'none'
})
.after('<span class="select">' + title + '</span>')
.change(function () {
val = $('option:selected', this).text();
$(this).next().text(val);
})
}
});
});
$(document).ready(function () {
initDropDowns();
function initDropDowns(){
$('select.select').each(function () {
var title = $(this).attr('title');
if ($('option:selected', this).val() != '') {
title = $('option:selected', this).text();
$(this)
.css({
'z-index': 10,
'opacity': 0,
'-khtml-appearance': 'none'
})
.after('<span class="select">' + title + '</span>')
.change(function () {
val = $('option:selected', this).text();
$(this).next().text(val);
})
}
});
}
// on dropDowns add --> initDropDowns();
});
Вместо $ (document).ready() вам нужно использовать $ (document).live()
.ready() позволяет зарегистрировать обратный вызов, который запускается, когда DOM готов - это похоже на использование window.onload, но срабатывает раньше (и вы можете зарегистрировать более одного обратного вызова).
.live() позволяет регистрировать обратный вызов в диапазоне событий на основе селектора, который постоянно контролирует DOM и регистрируется на новые добавленные узлы.