我正在开发跨平台触摸事件.(刷卡等)他们在Android设备上工作,但对于iPad,touchstart事件会发射两次.
this.element.addEventListener('touchstart', mousedown, false);
var mousedown = function(event) {
// Finger Press
event.preventDefault();
_this.inGesture = true;
_this._originalX = (event.touches) ? event.touches[0].pageX : event.pageX;
_this._originalY = (event.touches) ? event.touches[0].pageY : event.pageY;
};
Run Code Online (Sandbox Code Playgroud)
此功能在iPad上触发两次,但在Android上正常运行.
我应该补充一点,它触发touchstart,然后touchmove,然后touchend,最后由于某种原因它再做一次touchstart.
这是JSFiddle:http://jsfiddle.net/6Lb3Z/1
我正试图用jGestures实现触摸平衡.swipeone工作正常,但其他任何东西(swipeleft,swiperight等)都没有开火.
<div id="wrap" style="height:500px; width:500px; background: blue;">
</div>
<script type="text/javascript">
$('#wrap').bind('swipeleft', function(){
alert("test");
});
</script>
Run Code Online (Sandbox Code Playgroud)
这只是我做的测试页面.它实际上是在我的主项目中的某个点上工作,但似乎完全停止了,即使我恢复到旧版本也没有.我尝试过不同版本的jGestures而没有运气.
我有以下代码,几乎直接从API获取,但事件没有触发.有任何想法吗?谢谢.
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '250',
width: '300',
videoId: 'u1zgFlCw8Aw',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
alert("Ready");
event.target.playVideo();
}
function onPlayerStateChange(event) {
alert("State Changed");
}
Run Code Online (Sandbox Code Playgroud)
答案:事实证明这是因为我在本地进行测试,呵呵!但请参阅下面的其他可能原因.