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

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

$( 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)
});
2 ответа

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

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


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

например: вы можете взять свой дублированный код внутри событий.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);
}

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

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

licensed under cc by-sa 3.0 with attribution.