kryamk
@kryamk

Как подписаться на событие в fullpage.js вне класса?

Внутри класса работает, а снаружи нет.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
@Konf
Редактирую ответы на 2 + 2 по 4 раза
Кажется, эта библиотека так не может, и все обработчики надо навешивать во время создания экземпляра класса. Но никто не мешает сделать свою обёртку: при создании экземпляра "fullpage" пропускать события через свой EventEmitter:
onLeave:   () => customEmitter.emit('onLeave', ...arguments),
afterLoad: () => customEmitter.emit('afterLoad', ...arguments),
...

customEmitter.on('event', doWhatever);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kryamk
@kryamk Автор вопроса
1 вариант:
const Emitter = require("events");
let emitter = new Emitter();
emitter.on("afterLoad", function(...data){
	console.log(data);
});


afterLoad: function(origin, destination, direction) {
	emitter.emit("afterLoad", origin, destination, direction);
},

2 вариант
afterLoad: function(origin, destination, direction) {
	document.dispatchEvent(new CustomEvent("afterLoad", {
		detail: { origin, destination, direction }
	}));

},

document.addEventListener('afterLoad', function(e) {
	alert(e.detail.destination.index);
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы