2013-06-24 61 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

作为替代,我还是设法勾“玩”事件追踪,有人点击,开始视频。对于我的特殊用例,这已经足够了。

相关问题