Не работает код при добавление новых элементов
Есть такой код:
<script type="text/javascript"> $(document).ready(function() { $('a[rel*=facebox].facebox(); }); </script> Он замечательно работает, все Ок. Но когда я добавляю новые ссылки на страницу он отказывается их обратабывать. Добавляю таким образом: $("<li><\/li>").appendTo("#images").html("<a rel=\"facebox\" href=\"images.jpg\">images<\/a>"); Подскажите что делать? |
Как вариант вешать напрямую на вновь добавленные элементы нужное событие.
например <a href="#" onClick(HelloFunction())>Hello</a> тоесть запускать будет нужную функцию. Как минимум, а вообще не работает почему сказать не могу , надо пробовать, если вариант 1 не подойдет. |
Может еще есть какие-то варианты?
|
а что если попробовать так.
После добавления нового элемента запускать функцию поиска всех ссылок с нужным параметрами , заодно сразу посмотришь отлавливается ли вновьдобавленная. Так думаю будет ок. Короче ("<li><\/li>").appendTo("#images").html("<a rel=\"facebox\" href=\"images.jpg\">images<\/a>"); сделала А ПОТОМ выбираешь все ссылки со своим релом и в each() перезаписываешь обработчик) Но я не знаю чем неугоден вариант 1 |
Как я мог забыть.
Нужно при создании использовать live(); Вот пример $('#clicker').live("click", function(){ И здесь то что будет обработчиком на имеющиеся и добавленные элементы }); Пожалуйста отпишитесь с результатом |
Цитата:
|
0931454574, к сожалению не понял ваш пример.
walik, как вешать такое событие? |
$("<li></li>").appendTo("#images").html('<a rel="facebox" href="images.jpg">images</a>').find('a').facebox(); |
Спасибо.
|
dima85,
Для всех тегов <a> будет обработчик на событие клик, при добавление новых <a> они тоже будут получать обработчик. Здесь выбирает <a> с классом GURU , но Вы можете по чем угодно выбрать. $('a.GURU').live('click', function(){ (this).facebox(); }); И все будет работать. |
Часовой пояс GMT +3, время: 07:10. |