Задать вопрос
@Returb0

Куда записывать события по клику в ES6 javascript?

Если по новому стандарту свойства записываются в специальный "constructor", а методы непосредственно в сам "class" (пример создания класса в ES6 на скриншоте), то куда записывать события по тому же клику привязанные к конкретной переменной?

Полный код:
function Slider(obj){
	this.images = $(obj.images);
	this.btnPrev = $(obj.btnPrev);
	this.btnNext = $(obj.btnNext);
	this.auto = obj.auto;
	this.rate = obj.rate || 1000;
	var i = 0;
	var isRun = false;
	var self = this;
	var selfWidth = this.images.eq(0).width();

	this.btnPrev.on("click", function(){
		move(-1, -selfWidth);
	});
	this.btnNext.on("click", function(){
		move(1, selfWidth);
	});

	function move(direction, moveLeft){
		if(isRun){
			return;
		}
		isRun = true;

		self.images.eq(i).animate({
			left: -moveLeft
		},1000);

		i += direction;
		if(i < 0){
			i = self.images.length - 1;
		}
		else if(i >= self.images.length){
			i = 0;
		}

		var selfShow = self.images.eq(i);
		selfShow.css({
			"left": moveLeft,
			"opacity": "1"
		});
		selfShow.animate({
			left: 0
		},1000, function(){
			isRun = false;
		});
	}

	if(this.auto){
		setInterval(function(){
			move(1, selfWidth);
		}, this.rate);
	};

}


НАПРИМЕР вот как событие по клику реализовано в стандарте ES5
this.btnPrev.on("click", function(){
		move(-1, -selfWidth);
	});


Как и где написать такой код (событие по клику) в новом стандарте ES6 ?
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
alvvi
@alvvi
export default apathy;
НАПРИМЕР вот как событие по клику реализовано в стандарте ES5

ES5 тут не при чем, это синтаксис jQuery
в ES5/ES6 на DOM-ивенты подписываются методом
target.addEventListener(type, listener[, options]);

где type - тип ивента,
target - объект реализующий EventTarget интерфейс (например Element),
listener - коллбэк который вызывается после ивента.
Ответ написан
Так же как и в es5
И почему у вас в конструкторе нет прототипов?
Если бы были, было бы видно, что и куда.
Функции, относящиеся напрямую к конструктору - должны быть в прототипе (то есть в методе, если в es6)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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