Ajax загрузка страницы + Masonry + Infinite Scroll
Добрый вечер
Решил немного обновить вебсайт и добавить masonry + infinite scroll
Страницы хочу подгружать через ajax и открывать во всплывающем окне
Делаю по уроку: modx.pro/development/3139-foundations-of-ajax/
Так вот все получилось, кроме ajax запросов — не передается ID и закружается все та же страница
ссылки
сниппет ajax
js
Решил немного обновить вебсайт и добавить masonry + infinite scroll
Страницы хочу подгружать через ajax и открывать во всплывающем окне
Делаю по уроку: modx.pro/development/3139-foundations-of-ajax/
Так вот все получилось, кроме ajax запросов — не передается ID и закружается все та же страница
ссылки
<a href="[[~[[+id]]]]" data-rid="[[+id]]" class="ajax"><h1>[[+pagetitle]]</h1></a>сниппет ajax
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
$action = filter_input(INPUT_POST,'action');
$output = '';
if (empty($action)) {return;}
switch ($action) {
case 'getResources':
$id= filter_input(INPUT_POST,'rid');
$resource = $modx->getObject('modResource',array('id' => $id));
$pagetitle = $resource->get('pagetitle');
$content = $resource->get('content');
echo "<h1>$pagetitle</h1>";
break;
}
if (!empty($output)) {
die($output);
}
?>js
<script type="text/javascript">
$(document).on('click', 'a.ajax', function(e) {
var data = $(this).data();
var urlPath = $(this).attr('href');
var title = $(this).text();
var rid = $(this).data('rid');
$.ajax({
type: "POST",
data: data,
success: function(data) {
document.title = title;
history.pushState('', document.title, urlPath);
showContent(data);
}
})
function showContent(data) {
$('#result').html(data);
}
return false;
})
</script> Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
А то у тебя просто по ссылке переход. Нужно первой строкой после
добавить
Для начала попробуй сделать так, чтобы по клику на ссылку выводился alert('blabla');
Возможно селектор некорректно выбирает ссылку или просто ошибка в коде.
Добавь перед $.ajax(...) вот это:
Или вот так: