2009-09-27 7 views
2

У меня есть два в таблице с идентификаторами row_26 и notificationrow_26. notificationrow_26 динамически добавляется в DOM после загрузки страницы.Задача селектора JQuery

Я хочу выделить уведомление_26. Поэтому я использую

var deviceUID = 26; 
$("#notificationrow_" + deviceUID).effect("highlight", {}, 3000);  

но если сделаю. Он не выделяет эту строку. Я также попробовал просто получить доступ к notificationrow_26, но он не имеет доступа к этому даже.

Он действительно выделяет row_26, когда я его прошу. Я слышал что-то о jquery live, но как я могу получить к нему доступ с jquery live? Я думаю, что jquery live - это только события и прочее. Я просто хочу получить доступ к этой строке, которая была добавлена ​​в DOM динамически.

Я что-то упустил?

+1

Как насчет еще кода? Имеет ли добавленная строка фоновый цвет? (Для того, чтобы «подсветка» работала, нужно, чтобы ячейки внутри нее нуждались в * не *, чтобы остановить их, затеняя фон строки.) – bobince

ответ

4

Вам нужно будет вызвать инструкцию .effect после добавления элементов в DOM. Вы можете использовать .live, если вы прикрепляете элементы к DOM «кликом» или другими распространенными событиями (не «change», хотя для этого вам понадобится livequery).

+1

Чтобы прояснить, что говорит медикер, при первой загрузке страницы jQuery пойдет через любой элемент, который вы попросили его посмотреть или изменить, и привяжет действия к этому элементу. Поэтому, когда вы добавляете вещи в DOM после загрузки, jQuery не распознает эти новые элементы, если им не сообщается о них. – jakeisonline

1

Я не знаком с .effect(), это плагин или часть другой рамки JavaScript? Следующий код будет выделить строку, при условии, что нет никаких конфликтов с $ стенографии на странице

var deviceUID = 26; 
$("#notificationrow_" + deviceUID).css('background-color','highlight'); 

это может быть применено только после того, как строка была вставлена ​​в DOM (то, что я имею в виду, что, когда команда , он будет влиять только на те элементы, которые соответствуют селектору, который существует в DOM в то время).

Таким образом, в зависимости от того, как добавляется строка, вы можете добавить подсветку в функцию обратного вызова, если она есть, соединить команду выделения в строку до/сразу после ее вставки в DOM. Here's a demo, чтобы показать вышеуказанный код.

Смежные вопросы