Извините за базовый уровень вопроса, но js определенно не является моей областью знаний. Тем не менее, это один из тех вопросов, на которые Google трудно ответить.Консолидация функций таймаута javascript
В основном я хочу сделать пару вещей, когда изменяется размер окна. У меня есть немного дополнительного кода, который также останавливает событие изменения размера дважды.
Проблема в том, что я дублирую биты кода, что, как кодер, я знаю, это неправильно. Проблема в том, что я не знаю, как это сделать правильно. Вот мой текущий дублируется код:
событий связывания
$(window).on("resize", resizeText);
$(window).on("resize", resizeIndicator);
Функции
function resizeIndicator() {
clearTimeout(id);
id = setTimeout(updateIndicator, 200);
}
function resizeText() {
clearTimeout(id);
id = setTimeout(updateText, 200);
}
Thse не дублируется, но для полноты:
function updateIndicator() {
$tab = $(".tabs li.focus");
if ($tab.length) {
toggleIndicator($tab, true);
}
}
function updateText() {
$tabs = $(".tabs li:not(.indicator) a");
$tabs.each(function() {
$(this).toggleClass("two-line", this.scrollWidth > $(this).outerWidth());
});
}
Почему не вызывая одну функцию на изменение размера и делать то, что вы хотите сделать на изменение размера? Вы что-то пробовали? – Shrabanee
Вы используете тот же глобальный «id» в обоих методах изменения размера? –