2013-06-24 3 views
0

Я создаю приложение, используя Apache Cordova (phonegap) и столкнулся с проблемой.Как получить событие javascript click на видео Quicktime на iPad?

В моем приложении у меня есть звук, который автоматически воспроизводится, и мне нужно остановить его, когда кто-то нажимает на элемент видео, который был динамически вставлен на страницу через jQuery.

Чтобы просмотреть проблему, которую у меня есть, посетите эту страницу в iPad и убедитесь, что ни одно из прикрепленных событий не запущено. http://jsfiddle.net/PQqMC/4/

Этот пример содержит события, которые связаны с помощью метода «.on()» jQuery и методом «.bind()», а также встроенными событиями. Он также пытается подключиться к событиям click и touch.

Это происходит как в Safari, так и в Chrome на iPad. Также кажется, что это происходит иногда на видео, которое не динамически вставлено.

Любой способ захватить события click/touch?

Вот код со страницы jsFiddle:

$('#video_cont video').on('click', function(){ 
    alert("clicked (binded before)"); 
}); 
$('#video_cont video').on('touchstart', function(){ 
    alert("touched (binded before)"); 
}); 
$('#video_cont2 video').on('click', function(){ 
    alert("clicked2 (binded before)"); 
}); 
$('#video_cont2 video').on('touchstart', function(){ 
    alert("touched2 (binded before)"); 
}); 

$(document).ready(function(){ 
$('#video_cont').html('<video ontouchstart="alert(\'ontouchstart\')" onclick="alert(\'onclick\')" src="http://techslides.com/demos/sample-videos/small.mp4" controls></video>'); 

    $('#video_cont video').bind("click", function(){ 
     alert("clicked (binded after)"); 
});  
    $('#video_cont video').bind("touchstart", function(){ 
     alert("touched (binded after)"); 
    }); 
    $('#video_cont2 video').bind("click", function(){ 
     alert("clicked2 (binded after)"); 
    });  
    $('#video_cont2 video').bind("touchstart", function(){ 
     alert("touched2 (binded after)"); 
    }); 
}); 
+0

Возможно, у вас возникли проблемы с политикой iOS, когда никакие аудио- или видеоэлементы не имеют права ничего делать без прямого взаимодействия с пользователем, но было бы удивительно, поскольку вы привязываетесь к событиям '' click'' (и другим) , – mzedeler

ответ

1

В качестве альтернативы, мне удалось зацепить в к «играть» событие, чтобы отследить, что кто-то нажал и начал видео. Для моего конкретного случая использования этого было достаточно.