jquery fullscreenchange и событие on.click
У меня есть слайдер с адаптивным видео, которое может отображаться в полноэкранном режиме. При нажатии на изображение плаката в полноэкранном режиме я хочу получить .clientWidth
изображения для установки div (.sp-layer), в который загружается iframe видео.
fullscreenchange
События, кажется, работают нормально, но всякий раз, когда я нажимаю на ссылку с .on('click')
Событие, fullScreenMode не определено?
this.fullScreenMode = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;
console.log("initial fullScreenMode: " + this.fullScreenMode);
$(document).on('mozfullscreenchange webkitfullscreenchange fullscreenchange', function() {
console.log('fullscreenchange Event fired');
this.fullScreenMode = !this.fullScreenMode;
console.log('fullScreenMode: ' + this.fullScreenMode);
if (!this.fullScreenMode) {
console.log('we are not in fullscreen, do stuff');
$('.sp-layer').css('width', '100%');
}
});
$('a.sp-video').on('click', function() {
console.log('clicked on link');
console.log('fullScreenMode: ' + this.fullScreenMode);
if (this.fullScreenMode) {
console.log('we are fullscreen, do stuff');
var cW = $(this).children('img')[0].clientWidth;
console.log('clientWidth of image: ' + cW);
$(this).parent('.sp-layer').css('width', cW);
}
});
1 ответ
Решение
+ Изменить this.fullScreenMode
в document.fullScreenMode
в вашем обработчике кликов. В обработчике кликов this
относится к кнопке a.sp-video
, а не документ.
Как в:
$('a.sp-video').on('click', function() {
console.log('clicked on link');
console.log('fullScreenMode: ' + document.fullScreenMode);
if (document.fullScreenMode) {...