Не преобразовывается html код.
Есть такой код, он ссылки вида:
<a href="/page.php?p=project" class="ajax">Проекты</a> Делает такими: <a class="ajax" href="./#project" data-href="/page.php?p=project">Проекты</a Нажав на такую ссылку происходит загрузка этой страницы в #content. Код отлично справляется с своей задачей. Но если на той загруженной странице в #content есть еще ссылка с таким же class="ajax" он не преобразовывает ее. Подскажите пожалуйста как это сделать. var a = $("a.ajax"); a.each(function(i,e){ e = $(e); e.attr("data-href", e.attr("href")) .attr("href", "./#"+e.attr("data-href").split('=')[1]) .on("click.ajax", function (event) { var link = e.attr("data-href"); $("#content").html('Загрузка...'); $.get(link, function (response) { $("#content").html(response); }); return false; }); }) }); |
Не понимаю для чего нужны костыли с data-href можно ведь сделать что-то вроде этого.
$('body').on('click.ajax', 'a.ajax', function (e) { $("#content") .html('Загрузка...') .load( $(this).attr('href') ); return false; }); |
Не знал. Клева. Спасибо огромное! А можно как-то в url добавлять /#page.php?p=project то есть href нажатой ссылки?
|
Не понял про что вы спрашиваете? Пример html можно.
|
Нажимаем на: <a class="ajax" href="/page.php?p=project">Проекты</a> У нас идет GET запрос, открывается страница. И в браузере в url мы должны видеть site.com/#page.php?p=project это можно реализовать?
И второе, после нажатия на ссылку, страница прокручивается вверх. Как-то можно избавится от этого прокручивания? Я ранее делал в ссылках onclick="return true;" может есть другой более правильный способ? |
$('body').on('click.ajax', 'a.ajax', function (e) { var href = $(this).attr('href'); $("#content").html('Загрузка...').load( href ); // По первому вопросу можно сделать что-то в этом роде location.href = location.href + '#' + href.substr( href.indexOf('=') + 1 ); // Эта штука отменяет действия, зашитые браузером, то есть прокрутку, переход и т.д. return false; }); |
Часовой пояс GMT +3, время: 00:10. |