Селектор оценивается только при назначении события. Попробуйте что-то вроде
$(function() {
$(':text').live("blur", function() {
if ($(this).is(':last')){
$('<div class="line"><span>data: </span><input type="text"/></div>').appendTo('#lineStack');
}
});
});
Таким образом, каждый: текст получает событие (мы используем функцию live , чтобы убедиться, что оно автоматически назначается новым элементам при их создании), но мы используем is функция, чтобы убедиться, что выбранный был действительно последним.
(Я также избавился от избыточного вызова $
в appendTo. Функции jQuery, такие как appendTo, могут принимать строку селектора в качестве параметра.)