$(this).next().width(starsDataWidth)
станет более читабельным и легким для восприятияexitPointX > (leftEdge +width)
или на выход везде правее левой границы exitPointX > leftEdge
, мы можем получить ложное срабатывание при некорректном определении браузером exitPointX. Поэтому добавляем костыль в виде 10% ширины как буферную зону вправо от левой границы.$('#param' + id).text("5");
-> хардкодом вписываем строку "5" (можно было и просто 5 цифрой, не имеет значения, только семантика) вместо того, что у нас рассчитал алгоритм в функции move; $(this).next().width(width);
-> это аналог obj.next().width(progress) из вашего кода (функции move, 8-я стр в вашем примере), только теперь мы для элемента, на котором сработало событие (div.stars__data), берем следующего за ним сиблинга (элементы с одинаковым родительским блоком, у нас будет p.stars__progress) и в качестве ширины задаем ему значение из переменной width (объявляли ее как var width = $(this).width()
. Т.е. делаем p.stars__progress такой же ширины, как div.stars__data. Имя для переменной выбрал не очень удачно, вводит в заблуждение слишком много width ))
- создаем пустой массив;
- при успешной обработке запроса вызываем колбэком ф-цию, которая находит все кнопки на странице и проверяет, есть ли уже такие кнопки в нашем глобальном массиве.
- если этой кнопки в массиве нет, навешиваем на нее листенер и добавляем в массив