У меня есть классическая table / thead / tbody
структура, в которую я добавляю строку в конце тела. Строка содержит только элемент input
. Код работает в Firefox 3.6 , но не в Chrome v5 или IE8 . Я использую jQuery 1.4.2.
не работает:
$("#" + AJAX_ID).parent().find('tr:last > td:nth-child(2) > input').focus();
Работает ли:
$("#" + AJAX_ID).parent().find('tr:last > td:nth-child(2) > input').css('background-color', 'red');
даже установка идентификатора на входе и использование document.getElementBuId('id').focus()
не работает.
Спасибо!
* редактировать *
сайт довольно сложный (смесь шаблонного / статического HTML и динамического HTML), но таблица
выглядит так (рендеринг HTML в Chrome, макет с помощью Tidy): http://pastebin.com/PHqxAEVm
* редактировать 2 *
даже $("#lectures").find("input:last").focus();
, вызванный из обратного вызова ajax, ничего не делает .. $("#lectures").find("input:last").css('background-color', 'red');
хотя и краснеет, но фокус переходит на адресную строку.
вот дамп возвращенного объекта из селектора:
http://pastebin.com/Jdw1TZXf
* редактировать 3 *
вот код javascript, который составляет таблицу: http://pastebin.com/cbCfi0UY
при загрузке страницы oContainer
равен $("#lectures")
, а после вызова ajax - $("#" + AJAX_ID).parent()
, который должен указывать на tbody таблицы
* редактировать 4 *
трудная проблема ... вот полный lectures.js
файл: http://pastebin.com/Jkg0DZqa
batisses
и compteurs
- это объекты json, загружаемые через шаблон. пользователь выбирает batisse
, затем compteur
, затем нажимает кнопку, которая вызывает buildAjout()
, которая вызывает в этом примере buildElectric($("#lectures"), compteur);
. Как только строка заполнена пользователем, вызывается onBlurLecture(tr_parent)
, данные отправляются на сервер через AJAX, а function callback_compteurs_lecture_add(AJAX_ID)
вызывается после завершения вызова ajax. Функция SendCommand
- это пользовательская функция, использующая jquery ajax.
Создание первой строки ввода (и фокуса) работает, но не той, которая была создана при обратном вызове ajax.
* редактировать 5 *
полная отображаемая страница выглядит следующим образом: http://pastebin.com/UfBYcjX3
Я сократил переменную batisses
. (Полная) страница не имеет ошибок JavaScript.
В консоли chrome javascript я не могу сфокусировать ввод.
* редактировать 6 *
неправильное название функции в этом вопросе для SendCommand
. неподвижная.
найденное решение:
http://bit.ly/bHd6nH