我正在尝试检测鼠标抬起或触摸结束事件,但不希望它触发两次。完整示例请参见此处:
在平板电脑上,touchend事件先触发,然后经过一段时间后,mouseup事件才会触发。因此,我包含了e.preventDefault()代码行,这可以在iPad上停止mouseup事件的触发。但是,在Android上却没有任何效果。两个事件仍然都会触发。使用"return false"、stopPropagation()和/或stopImmediatePropagation()也没有效果。请注意,我可以删除touchend事件,但我不想等待mouseup事件在平板电脑上触发的延迟。而且,我需要为非平板设备包括mouseup事件。我也不想测试触摸功能,然后解除鼠标支持,因为有些人可能同时使用具有触摸和鼠标支持的笔记本电脑。我只想让Android停止触发mouseup事件。
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#t").on("touchend mouseup", function(e){$("body").append(e.type + "<br>"); e.preventDefault();});
});
</script>
</head>
<body>
<div id="t" style="position: absolute; left: 200px; width: 200px; height: 200px; background: blue;"></div>
</body>
</html>
在平板电脑上,touchend事件先触发,然后经过一段时间后,mouseup事件才会触发。因此,我包含了e.preventDefault()代码行,这可以在iPad上停止mouseup事件的触发。但是,在Android上却没有任何效果。两个事件仍然都会触发。使用"return false"、stopPropagation()和/或stopImmediatePropagation()也没有效果。请注意,我可以删除touchend事件,但我不想等待mouseup事件在平板电脑上触发的延迟。而且,我需要为非平板设备包括mouseup事件。我也不想测试触摸功能,然后解除鼠标支持,因为有些人可能同时使用具有触摸和鼠标支持的笔记本电脑。我只想让Android停止触发mouseup事件。