Я использую 100% чистый JavaScript, пробовал Jquery, но это не помогло. Код не работает в FF / Chrome / Safari.
Я построил функцию редактирования на месте, где, когда пользователь нажимает «Редактировать» (вызывая внешнюю функцию с помощью onclick - передавая item_id) - строка текста скрывается, чтобы показать ввод с той же строкой текста в Это. (путем изменения классов) «Изменить» также заменяется на «Сохранить». Когда вы закончите редактирование строки - пользователь нажимает «Сохранить», и все возвращается к нормальному состоянию.
AJAX обрабатывает все обновления, но комментирование блока AJAX не исправляет его.
Я загружаю поток этих объектов. Javascript работает для всех из них - но обновляет DOM, во всяком случае, визуально для того, что показывает элементов до последних 24 часов. Сами блоки идентичны. То есть - элементы, которые были добавлены в течение последних 18-26 часов, когда я нажимаю «Изменить», ничего не делают. НО, если я предупреждаю класс элемента, который я хочу отредактировать, он говорит «редактирование» (в отличие от «сохранено»), как будто он работает. (см. ниже) Хотя это изменение никогда не отражается в элементе проверки.
Код на странице
<input type="text" class="input_field" id="input_254" value="Foo" onkeydown="javascript: if (event.keyCode == 13) { update(254); }" style="display: none; ">
<span class="user_links" id="display_269" style="display:none;">Foo</span> //hidden span that holds the value and acts at the check
<span id="edit_state_269" class="saved" style="display: none;">Foo</span>
<span onclick="update(269)" id="edit_269">Edit</span>
Внешний Javascript
function update(item_id) {
var links_span = document.getElementById('display_' + item_id);
var input_span = document.getElementById('input_' + item_id);
var string_old = document.getElementById('edit_state_' + item_id).innerHTML;
var state_check = document.getElementById('edit_state_' + item_id);
var edit_button = document.getElementById('edit_' + item_id);
if (state_check.getAttribute('class') == 'saved') {
// Hide the links display list and show the input field
links_span.style.display = 'none';
input_span.style.display = 'inline';
// Change the Edit button text and state_check
edit_button.innerHTML = 'Save';
state_check.setAttribute('class','editing');
//alert(state_check.getAttribute('class')); // this alerts "editing" although in DOM it is still "saved" on the blocks that are the problem
Если были бы полезны какие-либо подробности - я предоставлю их.
Это дьявол проблемы - без очевидного решения. Буду очень признателен за любое направление, которое вы можете дать!