Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как заставить скрипт обновить свои знания о dom? (https://javascript.ru/forum/offtopic/35766-kak-zastavit-skript-obnovit-svoi-znaniya-o-dom.html)

l-liava-l 21.02.2013 15:24

Как заставить скрипт обновить свои знания о dom?
 
Доброго времени суток!

Есть каталог товаров и слайдер новых товаров, все тянется из бд и подгружается на страничку аяксом.

Возникла проблема, если кликнуть по ссылке на подгруженном контенте, то ничего не происходит, хотя скрипт выполняется.

При проверке алертом $(this).attr('href') ловлю undefined.

Получается, что скрипт не подозревает о существовании элементов, которые я подгрузил.

Как это исправить?

Зы
пока что допер только до ужасного костыля, который со всем подгружаемым контентом загружал скрипт, а потом удалял все копии этого скрипта

dmitry111 21.02.2013 15:33

l-liava-l,

ну тут два варианта, первый ты уже назвал, второй:

вешать событие на подгружаемый блок заочно

рони 21.02.2013 15:37

on

dmitry111 21.02.2013 15:41

Цитата:

Сообщение от l-liava-l
Получается, что скрипт не подозревает о существовании элементов, которые я подгрузил.

конечно не подозревает.
Можно вешать событие на контейнер, в котором будут подгружены данные и фильтровать событие по критериям.


Например контейнер с id="container" в которвый подгружаются изображения с class="img"

Если составить скрипт так:

document.getElementById("container").onmousedown = function (e) {
    if (e.target.className === "img") {
        alert("boom");
    }
};


то сколько бы ты картинок не подгрузил они все равно будут реагировать на это событие

l-liava-l 21.02.2013 16:09

Цитата:

Можно вешать событие на контейнер, в котором будут подгружены данные и фильтровать событие по критериям.
дык задача состоит в том, чтобы отобрать атрибут у подгруженного элемента.

рони,
я пробую вот так, но ничего не изменилось.
$("container a").on("click", function() {
$("container").load($(this).attr('href'));

});

Deff 21.02.2013 16:13

l-liava-l,
Нун определить ближайшую неперезагружаемую обертку
типо
$("#Wrap"); и делегировать событие
Тогда
$("#Wrap").on("click", "container a", function() {
    $(this).attr('href');
});

Поправил

l-liava-l 21.02.2013 16:21

ВАЙ заработало!!!))
Благодарю!

ps
Deff,
ты там скобочкой опечатался


Часовой пояс GMT +3, время: 10:00.