我正在使用 Apache Cordova (phonegap) 创建一个应用程序并遇到了问题。
在我的应用程序中,我有自动播放的音频,当有人单击已通过 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)");
});
});