У меня есть JS-скрипт, который использует jquery 1.4.3 для динамического создания и удаления текстовых элементов ввода. Мне нужно начать использовать jquery 1.9.1
из того, что я вижу
.live()
функции необходимо изменить на
.on()
но тогда только половина функциональности работает. Функция "Удалить" больше не работает, кто-нибудь может понять, почему?
полный источник находится по ссылке jsfiddle ниже.
http://jsfiddle.net/jaredwilli/tZPg4/4/
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
Вы должны немного изменить код, например:
$(document).on('click','#remScnt', function () {
...
});
вместо
$('#remScnt').live('click', function () {
...
});
Подобно этому, в любое время #remScnt
в dom, обработчик кликов будет привязан к элементу.
Кроме того, вы должны использовать class
вместо id
если на странице будет больше одного элемента remScnt
, id
должен быть уникальным.
скрипка здесь: http://jsfiddle.net/tZPg4/7313/