Я до сих пор не могу понять, почему он удаляет все входы. Я могу только предположить, что это связано с тем, что переменная myelement
связана с событием живого клика. Мы повторно используем эту переменную каждый раз, когда вызывается функция изменения ввода, и я не уверен, как jQuery обрабатывает это с этими <a>
событиями щелчка. Я думаю, что я буду копать.
Хотя я нашел обходной путь.
Вместо того, чтобы хранить элемент внутри живого события, связанного с <a>
, я дал вход и очередь div data-id
. Поэтому, когда нажимается #queue a
, он сопоставляет вход со своим собственным идентификатором данных:
$(document).ready(function () {
var count = 0;
$('input.upload').live('change', function() {
$(this).parent().prepend('<input type="file" class="upload" name="fileX[]" />');
$(this).attr('data-id', count);
$('#queue').append('<div data-id="' + count + '">' + $(this).val() + ' <a class="remove">X</a></div>');
count++;
});
$('#queue div a').live('click', function() {
$('input[data-id="' + $(this).parent().attr('data-id') + '"]').remove()
$(this).parent().remove();
});
});