Вы предложили решение звучит так, как будто оно должно работать, если у вас есть только один элемент .bar, но у вас есть несколько. Еще одна вещь, которую я вижу, это потенциально, если вы хотите продолжать запускать ее с заданным интервалом, поэтому всякий раз, когда эти блоки динамически изменяются, вы применяете эффект.
$(window).resize(function() {
clearTimeout(this.id);
this.id = setTimeout(adjustClass, 500);
});
function adjustClass() {
$('.bar').each(function() {
if $(this).width() == 250) {
$(this).addClass('barColor');
}
else {
$(this).removeClass('barColor');
}
});
}
РЕДАКТИРОВАТЬ: Каждый раз, когда размер окна изменяется, эффект будет вызываться каждые 500 миллисекунд, пока пользователь изменяет размеры, чтобы избежать потери ресурсов для вызова функции для каждой разницы изменения размера окна.