Не работает код при добавление новых элементов
Есть такой код:
<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, время: 19:48. |