Используйте jQuery.load() для загрузки фрагментов страницы, но заменяет все в теле
Я хочу заменить оригинальный div.wrapcontent содержимым фрагмента. Но использование.load заменяет все в теле, а не только конкретный div.
$("nav#category-nav>ul>li").on("click", "a", function() {
var $thecontent = $("#thecontent"),
$wrapcontent = $("#thecontent > .wrapcontent");
var path = $(this).attr("href");
$wrapcontent.load(path);
});
2 ответа
Решение
Проблема связана с поведением тега привязки по умолчанию. По умолчанию якорные теги перенаправляют на свои href
, Для вашего случая использования вы должны зафиксировать это поведение по умолчанию и предотвратить его возникновение.
Добавить evt
Объект к функции и предотвратить поведение по умолчанию, например, так:
$("nav#category-nav>ul>li").on("click", "a", function (evt) {
evt.preventDefault();
var $thecontent = $("#thecontent"),
$wrapcontent = $("#thecontent > .wrapcontent");
var path = $(this).attr("href");
$wrapcontent.load(path);
});
Завершить эту строку точкой с запятой не запятая и использовать e.preventDefault();
var $thecontent = $("#thecontent");