Галерея (ваш HTML будет примерно таким. Верно?)
<div id="rCol">
<div id="galleria">
<ul>
<li><img src="" alt /></li>
<li><img src="" alt /></li>
<!-- etc -->
</ul>
</div>
</div>
Навигационные ссылки (семантика ваших навигационных ссылок не имеет большого значения)
<ul id="galleria-nav">
<li><a href="?page=1">...</a></li>
<li><a href="?page=2">...</a></li>
<!-- etc -->
</ul>
Javascripts (это важная часть)
<script>
function loadPage(href) {
// do ajax call, with success handler:
$.post(href, function(rsp) {
// `rsp` is now the ENTIRE html page (incl <html> etc????)
// what you should do here, is filter the HTML, so you keep only div#galleria
// I can't do that here, because I have no idea what your actual HTML looks like
$('rCol').html(rsp);
initGalleryClickables();
}, null); // the `null` is just to show you there's no actual POST data
}
function initGalleryClickables() {
// reinit the galleria plugin (DOM changed)
$("#galleria").galleria({
transition: 'fade',
// more settings that you already have in your code
});
// reinit gallery image links? for lightbox or something? maybe not...
}
// no point in reiniting the nav links: their DOM doesn't change
$('#galleria-nav a').click(function(e) {
e.preventDefault(); // it's not a link
loadPage(this.href);
});
</script>
Мне не нравится jQuery.live
и стараюсь избегать этого. Он использует пузыри и в больших DOM, что просто неэффективно. Во многих случаях это тоже не нужно. Как этот.
Я думаю, что в вашем случае проблема заключается в ответе, который вы получаете на запрос ajax (см. Встроенный комментарий). Возможно, вам удастся отфильтровать нужный фрагмент HTML с помощью Javascript, но намного лучше, если бы эта фильтрация выполнялась на стороне сервера. Я предполагаю, что у вас есть доступ к выходному скрипту. Достаточно нескольких if
.
редактировать
Вы можете использовать .live
для навигационных ссылок (и ссылок на изображения галереи, если они есть (ссылки)), но вам все равно придется повторно инициализировать плагин galleria, поэтому я не использую .live
и повторно инициализирую весь вещь
Как я уже сказал: вам нужно отфильтровать правильный фрагмент HTML. Желательно на стороне сервера (меньше скачиваний и проще фильтрация, чем в Javascript). Я не могу помочь вам с этим, если вы не покажете мне код на стороне сервера =)