Почему не работает JS с подгруженными в DOM элементами?
Собственно сабж.
Прописана следующая функция: Код:
$(document).ready(function(){ В чем проблема? ЗЫЖ В статичной страничке все, естессно, ок. |
Есть же раздел для «jQuery», неужели он такой незаметный…
Не работает, потому что Вы добавляете события массиву ссылок с классом «thumbs» в тот момент, когда их ещё нет в документе (т.е. действие в «jQuery» происходит над пустым массивом, другими словами ничего не происходит), так приведённый вами код выполняется по событию «DOMContentLoaded» ($(document).ready(…)), а ссылки, как вы написали, добавляются уже после, через AJAX. |
И как же этого избежать? Дело в том, что если я даже подгружаемым ссылкам пропишу href нечно вроде:
<a href="javasсript:alert('та ё-маё!');">...</a> и это не работает. |
Немного поменял, поставил это конструкцию после загрузки элементов "a.thumbs":
Код:
$("a.thumbs").click(function(){ Код:
... |
естесна работает, так как пока вы щелкните на продолжение скрипта, уже придет асинхронный ответ, и объекты создадутся, и $("a.thumbs") будет не пустым.вам же ясно написали
Цитата:
для решения проблемы советую function(){ $("a.thumbs").click(function(){ var largePath=$(this).attr("href"); $("#largeImg").attr({src:largePath}); return false; }); }поместить не в $(document).ready(), а в конец обраьотчика вашего Ajax-запроса, и вызвать там же. тогда должо работать |
Аналогичная ситуация. Поставил click загружаемого элемента в конце (вне области $(document).ready() ), но обработчик не работает, подгруженный элемент имеет length 0 (проверял заменяя добавляя в погружаемій элемент onclick="testFunc()" ).
|
ostrov,
и что же вы ожидаете, поставив код "в конце", вне $(document).ready()? естественно не работает, ПОТОМУ ЧТО ЭЛЕМЕНТА ЕЩЕ НЕТ!!!!!!!! и быть не может. потому что надо вешать обработчики когда элемент уже есть. если он прописан в коде нормально, то вешать обработчик надо в $(document).ready().Если элемент создается после ответа с сервера, то там же и вешаем ему событие |
Часовой пояс GMT +3, время: 12:10. |