Установка высоты div после загрузки Jquery()

#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() обеспечивает обратный вызов при завершении функции

jQuery doc

 $('#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, который содержит всю загруженную страницу.