2011-01-11 72 views
1

我在我的HTML中使用視頻元素如下:iPad上的HTML5視頻元素不會觸發onclick?

<div id="container" style="background:black; overflow:hidden;width:320px;height:240px"> 
<video style="background:black;display:block" id="vdo" height="240px" width="320px" src="http://mydomain/vid.mp4"></video></div>
而在JavaScript中,我這樣做:
var video=document.getElementById('vdo'); 
var container=document.getElementById('container'); 
video.addEventListener('click', function(e) { 
    e.preventDefault(); 
    console.log("clicked"); 
}, false); 
container.addEventListener('click', function(e) { 
    e.preventDefault(); 
    console.log("clicked"); 
}, false);
在桌面Safari瀏覽器/鉻一切工作正常。我可以在控制檯中看到兩個「單擊」。但在ipad上沒有任何東西。首先,我嘗試了iOS Versin 3.2,然後我將它更新到最新版本4.2.1,但沒有取得任何成功。
我發現了一個類似的問題 HTML5 Video Element on iPad doesn't fire onclick or touchstart events?它建議不要在視頻標籤中使用控件,我不使用它。

回答

0

您是否確認目前沒有其他點擊與該事件相干?我所做的是在添加新監聽器之前首先解除特定事件。

即:

video.unbind("click").click(function(){...} 

我發現這個解決我遇到的問題。

0

我試過解鎖/單擊Frederico建議,但我仍然沒有收到任何點擊事件。不過,我確實可以獲得觸覺和觸覺事件。 (實際上,我讓他們從DOM一個div一個級別,但我希望你也可以從視頻元素一樣的得到他們。)

3

這是一個非常晚的答案,但萬一有人懷疑。如果您將活動更改爲「touchstart」,它將起作用。

video.addEventListener('touchstart', function(e) { 

這種行爲似乎對我來說是隨機的,因爲點擊大部分時間都是有效的。我還沒有仔細研究過爲什麼和何時

+0

這對我有效。我無法讓video.play()在iPad上觸發。點擊vs touchstart和300毫秒延遲必須是一個問題。感謝你的回答。 – 2012-06-27 15:27:37