Метод onClick позволяет задать обработчик события клика
по уведомлению. Это одно из ключевых средств взаимодействия с
пользователем, когда требуется выполнить определённое действие при
нажатии на уведомление, например, перенаправить на другую страницу,
закрыть уведомление, вызвать функцию или изменить состояние
интерфейса.
new Noty({
text: 'Пример уведомления',
type: 'alert',
timeout: 5000,
callbacks: {
onClick: function() {
console.log('Уведомление было кликнуто');
}
}
}).show();
Пояснение ключевых параметров:
alert,
success, warning, error,
information).Функция onClick не принимает аргументов напрямую, однако
внутри неё можно обращаться к текущему объекту уведомления через
this.
this внутри onClickОбъект this внутри обработчика ссылается на экземпляр
Noty, что позволяет управлять самим уведомлением:
new Noty({
text: 'Нажми на меня',
type: 'information',
callbacks: {
onClick: function() {
this.close(); // Закрывает уведомление
console.log('Уведомление закрыто');
}
}
}).show();
В примере this.close() закрывает уведомление при клике,
а console.log фиксирует событие.
Можно передавать внешние функции в onClick, что делает
код более структурированным:
function handleClick(notyInstance) {
alert('Клик по уведомлению!');
notyInstance.close();
}
new Noty({
text: 'Кликни для действия',
type: 'success',
callbacks: {
onClick: function() {
handleClick(this);
}
}
}).show();
Такой подход особенно полезен при множественных уведомлениях и повторном использовании логики клика.
Noty предоставляет доступ к корневому DOM-элементу уведомления через
свойство this.bar, что позволяет динамически изменять
внешний вид при клике:
new Noty({
text: 'Измени цвет при клике',
type: 'alert',
callbacks: {
onClick: function() {
this.bar.style.backgroundColor = 'red';
}
}
}).show();
onClick можно комбинировать с другими колбэками, такими
как onShow, onClose, afterShow,
afterClose. Порядок срабатывания не зависит от других
событий, и onClick вызывается только при реальном клике на
уведомление:
new Noty({
text: 'Комбинированное уведомление',
type: 'warning',
callbacks: {
onClick: function() {
console.log('Клик зафиксирован');
},
onClose: function() {
console.log('Уведомление закрыто');
}
}
}).show();
new Noty({
text: 'Перейти на сайт',
type: 'information',
callbacks: {
onClick: function() {
window.location.href = 'https://example.com';
}
}
}).show();
new Noty({
text: 'Показать детали',
type: 'alert',
callbacks: {
onClick: function() {
document.getElementById('modal').style.display = 'block';
}
}
}).show();
new Noty({
text: 'Нажми, чтобы отменить',
type: 'warning',
callbacks: {
onClick: function() {
this.close();
console.log('Действие отменено');
}
}
}).show();
onClick не срабатывает, если уведомление закрыто до
момента клика.timeout, уведомление может исчезнуть
до того, как пользователь успеет кликнуть.buttons) для создания интерактивных уведомлений с выбором
действий.Метод onClick обеспечивает гибкость взаимодействия с
уведомлениями, позволяя не ограничиваться простым информированием
пользователя, а строить полноценные сценарии реакции на события
интерфейса.