JQuery получить высоту div на готовом и изменить размер

0

У меня есть две отдельные функции, чтобы получить высоту одного элемента и применить его к его дочернему элементу. Таким образом, в основном функция повторяется, когда документ готов и изменяется размер окна. Есть ли лучший способ сделать это?

$( document ).ready(function() {
    var height = $('#sgn-panel-friendslist-holder').height();
    $("#sgn-panel-friendslist-holder #scroll").css("height", height-24)
});


$( window ).resize(function() {
    var height = $('#sgn-panel-friendslist-holder').height();
    $("#sgn-panel-friendslist-holder #scroll").css("height", height-24)
});
  • 1
    Вот как я всегда это делал. Я не думаю, что есть действительно лучший способ.
Теги:
height

2 ответа

1

Вот лучший код:

$(document).ready(function() {
   $(window).resize(function() {
      var height = $('#sgn-panel-friendslist-holder').height();
      $("#sgn-panel-friendslist-holder #scroll").css("height", height-24)
   }).trigger('resize');
});
  • 0
    Нет. это не работает Это событие срабатывает только при изменении размера окна (браузера), а не при загрузке страницы. Это срабатывает только дважды.
  • 0
    Я так не думаю, это нормально работает. Вы должны попробовать еще раз. Когда страница загружается, автоматически открывается окно изменения размера вызова. Вместо этого мы дублируем код. И этот код блока поместит в $ (document) .ready. Полный источник: $ (document) .ready (function () {$ (window) .resize (function () {var height = $ ('# sgn-panel-friendslist-holder'). Height (); $ ("# sgn-panel-friendslist-holder #scroll "). css (" высота ", высота-24)}). trigger ('resize');});
Показать ещё 3 комментария
0

Ну, всегда есть "разные" способы и подходы координировать что-то и получать одинаковый результат, и в этом случае сказать, какой из них "лучше" или "более эффективен", не так определен, как может быть в другом кодировании проблемы и/или сценарии.

например: вы можете взять свой дублированный код внутри событий.ready и.resize и затем поместить в одну функцию, например:

$( document ).ready(function() {
   setHeight();
});

$( window ).resize(function() {
   setHeight();
});

function setHeight() {
   var height = $('#sgn-panel-friendslist-holder').height();
   $("#sgn-panel-friendslist-holder #scroll").css("height", height-24);
}

Но теперь возникает вопрос: действительно ли это "лучше" или "более эффективно"? У других может быть свое мнение, но, на мой взгляд, нет. Это экономит время или сохраняет строки кода? Мое мнение.. Нет. Структурно легче читать, понимать и отлаживать? Мое мнение... Нет.

Так что я пойду.. Есть ли "лучший способ"? По моему мнению. Нет, не совсем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню