У меня есть две отдельные функции, чтобы получить высоту одного элемента и применить его к его дочернему элементу. Таким образом, в основном функция повторяется, когда документ готов и изменяется размер окна. Есть ли лучший способ сделать это?
$( 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)
});
Вот лучший код:
$(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);
}
Но теперь возникает вопрос: действительно ли это "лучше" или "более эффективно"? У других может быть свое мнение, но, на мой взгляд, нет. Это экономит время или сохраняет строки кода? Мое мнение.. Нет. Структурно легче читать, понимать и отлаживать? Мое мнение... Нет.
Так что я пойду.. Есть ли "лучший способ"? По моему мнению. Нет, не совсем.