Не преобразовывается 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, время: 02:06. |