Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2019, 21:54
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

oop/ вопросы с class()
Здрасте, подскажите, пожалуйста, как мне вставить в new Timer(), btnNext, чтобы метод начал работать...
см. два последних, в первом не по делу написано..........))
window.onload = function(e) {
	new Timer({
		images: '.gallery img',
		rate: 1000,
		auto: true,
	});
}

class Timer {
	constructor(obj) {
		let slider = this,
		i = 0;
		this.images = document.querySelectorAll(obj.images);
        this.rate = obj.rate || 1500;
        this.auto = obj.auto;
		this.btnNext = obj.btnNext;
}
	btnNext() {
			slider.images[i].classList.remove('showed');
			i++;
			if(slider.images[i] >= slider.images.length) {
				i = 0;
			}
			slider.images[i].classList.add('showed');
	}
	if(slider.auto) {
		setInterval(slider.btnNext, slider.rate)
	}
}

и еще в строке 26 пишет ошибку:"Uncaught SyntaxError: Unexpected token . ".


function Slider (obj) {
	let slider = this,
	i = 0;
	this.images = document.querySelectorAll(obj.images);
	this.rate = obj.rate;
	this.auto = obj.auto;	
	this.next = function() {
		slider.images[i].classList.remove('showed');
		i++;
		if (i>=slider.images.length) {
			i = 0; 
		}
		slider.images[i].classList.add('showed');
	}
	if (slider.auto) {
		setInterval(slider.next, slider.rate);
	}
};

new Slider({
	images:'.gallery img',
	rate: 1000,
	auto: true,
});

сверху рабочий))))))))
переписал 1-й вариант, вот так:
class Timer {
    constructor(obj) {        
        this.images = document.querySelectorAll(obj.images);
        this.rate = obj.rate || 1500;
        this.auto = obj.auto;
		this.run();
		let i = 0;// здесь var наверно, если что... let не увидит...
		
	}
        btnNext(){
			let i = 0;
            this.images[i].classList.remove('showed');
            i++;
            if(i >= this.images.length) {
                i = 0;
            }
            this.images[i].classList.add('showed');
    }
		run() {
			if(this.auto){
			setInterval(this.btnNext,this.rate);
			}			
}
};
new Timer({
        images: '.photos img',
        rate: 1000,
        auto: true,
    });


переписал еще раз........ теперь вопрос в стр: 7 и стр: 11, куда и как поставить счетчик?......, или, еще где-то, таймер работает, не может прочитать 0 не найден......тут должен, типа быть массив, или в объекте.. короче, запутался))))
кстати, убрал: let slider = this, дело пошло, это костыль какой-то?

Последний раз редактировалось prolk, 28.01.2019 в 02:35.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавлять class в div при вводе текста в input skwz Общие вопросы Javascript 9 06.01.2017 00:10
Выполнение <script> При определенном class ilya1099 Javascript под браузер 0 06.11.2016 23:12
Знаменитая функция Class учавствует в фреймворке ui2/0 __он_самый__ Оффтопик 3 29.12.2014 13:19
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Как работает функция Class godofjavascript Оффтопик 58 17.12.2012 09:49