Проблема с галереей prettyPhoto
$(document).ready(function(){ $("#gallery a[rel^='prettyPhoto']").prettyPhoto({theme:'dark_rounded'}); $("body").click(function() { $("#randImg").fadeOut(1000, function() { getRandImg(); }); $("#randImg").fadeIn(1000); }); function getRandImg() { $.getJSON("/randImg.php", {v: 1}, function(img){ $("#randImg").html(img.img); }); } }); <div id="gallery"> <ul id="randImg"> <li><a href="/img/company/gallery/large/image1.jpg" rel="prettyPhoto[gallery1]"><img src="/img/company/gallery/prew/image1.jpg" alt="Picture 1 title" /></a></li> <li><a href="/img/company/gallery/large/image2.jpg" rel="prettyPhoto[gallery1]"><img src="/img/company/gallery/prew/image2.jpg" alt="Picture 1 title" /></a></li> <li><a href="/img/company/gallery/large/image3.jpg" rel="prettyPhoto[gallery1]"><img src="/img/company/gallery/prew/image3.jpg" alt="Picture 1 title" /></a></li> <li><a href="/img/company/gallery/large/image4.jpg" rel="prettyPhoto[gallery1]"><img src="/img/company/gallery/prew/image4.jpg" alt="Picture 1 title" /></a></li> </ul> </div> все работает, но вот когда скрипт на сервере отдает случайные изображения из директории - получается DOM обновляется, и галерея отказывается работать. 1) как это исправить? 2) как сделать чтобы функция запускалась не по клику, а к примеру: каждые 5 сек? Спасибо |
1) поискать другую или написать свою
2) setInterval |
$("#gallery a[rel^='prettyPhoto']").prettyPhoto({theme:'dark_rounded'});
ну я как понимаю, на ссылки попадающие под условие вешается .prettyPhoto(); затем ссылки обнавляются, и как заставить поновой DOM проверить, и повесить обработчик на новые ссылки? |
ну да, еще есть третий вариант, пофиксить этот плагин. Для этого надо для начала разобраться как он работает ;)
|
ладно, придется опять что-то новое изобретать
|
"function getRandImg()"
попробуйте поставить ее перед вызовом а не после у жиквери есть фишка одна http://api.jquery.com/live/ позволяет держать события мне кажется, лучше обрабатывать новые элементы после загрузки аяксом, есть параметр .ajaxSuccess "каждые пять секунд" -создаете цикл с задержкой, можно использовать http://api.jquery.com/delay/ |
Часовой пояс GMT +3, время: 01:30. |