У меня есть <select id='group1'>
падение вниз, заполняющую <textarea id='group2'>
с помощьюJQuery динамического выбора и клон ДИВ
$('#group1').on('change', function(event) {
$.post('get_data.php', {sent_id: form1.group1.value },
function(bounced) {
var valNew = bounced.split(',');
$('#group2').html(valNew[0]) ;
});
});
Эта часть работает нормально. Теперь я пытаюсь клонировать эту <div id='tableline_00'>
и назначить новые id
S к входам с помощью
var current_id = 0;
$('#btn').click(function(){
nextElement($('#tableline_00'));
})
function nextElement(element){
var newElement = element.clone(true);
var id = current_id+1;
current_id = id;
if(id <10)id = '0'+id;
newElement.attr('id',element.attr('id').split('_')[0]+'_'+id);
var field = $('input', newElement).attr('id');
$('input', newElement).attr('id', field.split('_')[0]+'_'+id);
newElement.appendTo($('#elements'));
newElement.slideDown('fast');
}
Это тоже работает, но $('#group1').on('change', function(event)
работает только для первой линии, так как все новые клоны линии имеют новые имена ввода. Как вы могли бы изменить значение $('#group1')
и $('#group2')
. Я новичок в jQuery, поэтому любая помощь/ссылка полезна ... может быть, другой подход?
уаг а = 'group1', Ь = 'group2'; $ ('#' + a) .on ('change', function (e) {}); $ ('#' + a) .on ('change', function (e) {}); $ ('#' + b) .on ('change', function (e) {}); – robert
Две вещи: (a) Используйте класс вместо идентификатора. (b) Используйте делегирование событий, как описано здесь: http://stackoverflow.com/questions/12829963/events-triggered-by-dynamically-generated-element-are-not-captured-by-event-hand. –
Благодарю вас, ребята, я сразу же попробую. –