Одной из наиболее частых проблем является неправильная загрузка и
инициализация Bliss.js. Библиотека должна быть подключена до выполнения
любого кода, использующего её методы. Ошибка проявляется в виде
TypeError: Bliss is not defined.
Причины:
<head> без атрибута
defer или после кода, который использует библиотеку.Решения:
Использовать
<script src="bliss.min.js" defer></script> для
корректной загрузки.
Проверять путь к библиотеке и наличие файла на сервере.
В случае модульной загрузки через import, убедиться,
что используется правильный экспорт:
import Bliss from './bliss.min.js';Bliss.js активно использует селекторы и методы для работы с DOM.
Частая ошибка — попытка выполнить действия до полной загрузки документа,
что приводит к null или undefined.
Пример ошибки:
Bliss('#myButton').on('click', () => console.log('Clicked'));
Если элемент #myButton ещё не создан в DOM, метод вернёт
null.
Решения:
Bliss.ready() для запуска кода после
полной загрузки DOM:Bliss.ready(() => {
Bliss('#myButton').on('click', () => console.log('Clicked'));
});
const button = Bliss('#myButton');
if (button) {
button.on('click', handleClick);
}
Bliss.js возвращает коллекции элементов, похожие на массивы, но не
всегда с полноценными методами массивов JavaScript. Часто встречается
ошибка при попытке использовать методы .forEach или
.map напрямую.
Решение:
each,
map:Bliss('.item').each(el => el.textContent = 'Updated');
Array.from(Bliss('.item')).map(el => el.textContent = 'Updated');
Привязка событий через Bliss.js отличается от нативного JavaScript в
синтаксисе. Неправильное использование метода .on приводит
к отсутствию реакции на события.
Типичные ошибки:
addEventListener вместо .on
на коллекции Bliss.this.Корректные варианты:
Bliss('.button').on('click', function() {
console.log(this); // указывает на элемент .button
});
Для делегирования:
Bliss(document).on('click', '.button', function() {
console.log(this);
});
Bliss.js использует удобные методы .attr() и
.addClass(), .removeClass(),
.toggleClass(). Часто разработчики пытаются использовать их
как нативные свойства, например element.className = ...,
что может привести к конфликтам с другими методами библиотеки.
Рекомендации:
Bliss('#box').addClass('active');
Bliss('#box').removeClass('active');
if (Bliss('#box').hasClass('active')) {
// действие
}
Bliss('#link').attr('href', 'https://example.com');
Неправильная работа с атрибутами часто возникает при попытке сразу
присвоить объект .attr как свойство:
Bliss('#link').attr.href = 'https://example.com'; // ❌
Bliss.js предоставляет методы .fadeIn(),
.fadeOut(), .slideUp(),
.slideDown(). Частая ошибка — применение этих методов к
элементам, которых нет в DOM или которые уже имеют inline-стили,
мешающие анимации.
Решение:
const el = Bliss('#modal');
if (el) el.fadeIn(400);
el.style.display = '';
el.fadeIn(400);
Bliss.js поддерживает метод .ajax() для запросов.
Основные ошибки связаны с неправильным указанием URL, метода или формата
данных.
Пример ошибки:
Bliss.ajax({
url: '/api/data',
method: 'GET',
success: (data) => console.log(data)
});
Ошибка может возникнуть при использовании success вместо
современного then для промисов, если версия библиотеки
требует промисы.
Корректное использование:
Bliss.ajax({
url: '/api/data',
method: 'GET'
}).then(data => console.log(data))
.catch(err => console.error(err));
Методы .css() и .style() позволяют изменять
inline-стили элементов. Частая ошибка — попытка передать объект с
числовыми значениями без единиц измерения или неверное имя свойства.
Правильное использование:
Bliss('#box').css({
width: '200px',
height: '100px',
backgroundColor: 'red'
});
Ошибки появляются при:
width: 200 (без px)background-color вместо
backgroundColorBliss.js не конфликтует с большинством библиотек, но ошибки могут
возникнуть при попытке использовать однотипные методы коллекций,
например .each в jQuery и Bliss одновременно. Это приводит
к переопределению переменных и неожиданным результатам.
Решение:
$ или других
переменных, используемых другими библиотеками.Эта подборка ошибок и решений охватывает большинство проблем, с которыми сталкиваются при работе с Bliss.js в реальных проектах, от инициализации библиотеки до работы с DOM, событиями, AJAX и анимацией.