Я делаю видеоплеер с использованием JQuery и YouTube JS API, у меня есть различные методы для управления объектом проигрывателя YouTube, например:
setVolumen: function (value) {
if (value < 0 || value > 100) {
this.throwError("Volumen inválido: "+ value);
return;
}
this.volume = value;
this.elements.player.each(function () {
if (typeof this.setVolume != "undefined") {
this.setVolume(value);
}
});
},
"this.elements.player" - это селектор jquery объекта yt player. Я вызываю метод setVolume из экземпляра player-controll и работает. например:
// This is inside a method of controller class
// and self is a reference to "this" in method context
this.celements.volume.slider({
max: 100,
value: 100,
change: function (event, obj) {
self.setVolumen(obj.value);
}
});
Если я перемещаю элемент слайдера, это работает без проблем, но я вызываю метод из селектора jquery:
$ ( '# плейлиста') UplayList ( 'setVolumen', 80);.
это выданное "Ошибка: Ошибка вызова метода на NPObject!"
Объект существует, и setVolume не является неопределенным. Я не понимаю.
В Jquery есть:
$.fn.extend({
UplayList: function (options) {
this.each(function () {
if ($(this).data('uplaylistId')) {
var instance = $.playList.instances[$(this).data('uplaylistId')];
instance[options].apply( instance, Array.prototype.slice.call( arguments, 1 ));
} else {
var instance = new $.playList(this, options);
var id = instance.elements.player.attr('id');
$(this).data('uplaylistId',id);
}
});
}
});