2013-06-24 85 views
0

我使用Apache Cordova(phonegap)創建了一個應用程序,並且遇到了問題。如何在iPad上的Quicktime視頻獲取JavaScript點擊事件?

在我的應用程序中,我有自動播放的音頻,當有人點擊已通過jQuery動態插入頁面的視頻元素時,我需要停止它。

要查看我遇到的問題,請在iPad中訪問此頁面,並且看到沒有任何附加事件被解僱。 http://jsfiddle.net/PQqMC/4/

該示例具有通過jQuery的「.on()」方法和「.bind()」方法以及內聯事件附加的事件。它還嘗試附加點擊和觸摸事件。

這發生在iPad上的Safari和Chrome上。 似乎也有這樣的方式,有時不動態插入的視頻。

任何方式捕捉點擊/觸摸事件?

下面是從的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

作爲替代,我還是設法勾「玩」事件追蹤,有人點擊,開始視頻。對於我的特殊用例,這已經足夠了。

相關問題