Показать сообщение отдельно
  #10 (permalink)  
Старый 20.02.2015, 16:22
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

arcmag,
В js принято называть переменные в camel case, не надо подчеркиваний.

var allVideo = [];

var VideoDesigner = function VideoDesigner(myVideoBlock){
	this.video = myVideoBlock.querySelector("video");
	this.playPause = myVideoBlock.childNodes[5].childNodes[1];
	this.stopV = myVideoBlock.childNodes[5].childNodes[3];
    this._setHandlers();
};

VideoDesigner.prototype._setHandlers = function () {
    this.playPause.addEventListener("click", this.fPlay.bind(this), false);
    this.stopV.addEventListener("click", this.fStop.bind(this), false);
};

VideoDesigner.prototype.fPlay = function(){
    this.video.play();
};

VideoDesigner.prototype.fStop = function(){
    this.video.pause();
};

window.onload = function(){
   Array.prototype.forEach.call(document.getElementsByClassName("videoBlock"), function (myVideoBlock) {
       allVideo.push(new VideoDesigner(myVideoBlock));
   });
};


Постарайтесь убрать из кода цифры, понимание которых затрудняет код. Дайте кнопке плейПауза особый класс и тогда "myVideoBlock.childNodes[5].childNodes[1]" превратится в "myVideoBlock.querySelector(".особый класс")". Ото сильно упростит понимание вашего кода и убережот от ошибок по невнимательности.

Подчеркивание перед методом означает что это приватный метод, и пользоваться им может только его владелец (но это условности)

Примерно так это должно выглядеть. Симпотичнее, верно?

Последний раз редактировалось tsigel, 20.02.2015 в 16:47.
Ответить с цитированием