#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
У меня есть функция, которая загружает содержимое в div с помощью Jquery. Я пытаюсь добавить в свою функцию возможность устанавливать высоту div, чтобы соответствовать содержимому, которое я в него загружаю. Я пробовал несколько вариантов функции height() и я посмотрел код других людей, но не думаю, что я действительно понимаю, как включить это в свой конкретный. Вот функция. В нем также есть некоторый код для обновления URL. contentarea — это div, в который все загружается, и div, размер которого необходимо изменить.
//Jquery loader
function getHash() {
return window.location.hash
}
$("a").on("click", function (e) {
var page = this.href.replace("#", "") ".html",
hash = $(this).prop("hash");
$('#contentarea').load(page, function () {
if (page.match("home.html")) {
history.pushState('', document.title, window.location.pathname);
}
else {
location.hash = hash;
}
});
e.preventDefault();
});'
Любая помощь будет оценена!
ОБНОВЛЕНИЕ: я обновил код с вашей помощью, но на самом деле он не работает. Я решил, что добавлю div с именем content внутри contentarea и использую функцию обратного вызова. Что я делаю не так?
‘
$('#contentarea').load(page, function () {
if (page.match("home.html")) {
history.pushState('', document.title, window.location.pathname);
} else {
location.hash = hash;
}
}, function () {
$('#contentarea').height($('#content').height());
});
‘
Комментарии:
1. Не размещайте ссылку на внешний веб-сайт, поместите весь свой соответствующий код, чтобы воспроизвести проблему в самом вопросе. При необходимости используйте jsFiddle.
2. В предоставленном вами коде ничего не получается
height
.3. Хорошо, я внес изменения в вопрос. Кроме того, я не вводил никакого кода относительно высоты, потому что, как я уже сказал, я действительно не знал, как его закодировать и включить в свою функцию. Вот где мне нужна ваша помощь.
Ответ №1:
Документация .load() обеспечивает обратный вызов при завершении функции
$('#contentarea').load(page, function(){},function(){})
Вторая функция вызывается, когда загрузка функции завершена.
Ответ №2:
Вам нужно вызвать функцию обратного вызова после загрузки содержимого.
jQuery('#contentarea').load('externalpage.php', function() {
jQuery('#contentarea').height(jQuery('#content').height());
});
Комментарии:
1. Что означает #content ? В моем #contentarea div нет никаких divs внутри него.
2. это div, который содержит всю загруженную страницу.