当touchstart事件调用preventDefault()时,为什么onclick事件被抑制?
Why onclick event suppressed, when preventDefault() is called for the touchstart event?
我尝试为我的Ipad设备实现一些javascript函数。我想在我的画布div上使用一些滑动动作和点击动作
我实现了水平和垂直滑动功能。当滑动时,我必须在touchstart事件上使用preventDefault来防止整个页面滚动。它工作得很好,但在此之后,我注意到它禁用了这个div上的每个点击事件。当preventDefault被删除时,点击事件再次工作。
有解决这个问题的办法吗?
dojo.connect(this.node, "ontouchstart", this, "touchstart");
...
touchstart: function(e){
this.touch = dojo.clone(e.changedTouches[0]);
e.preventDefault();
}
。node = document.getElementById('aa');
<div id="aa" style="width: 600px; height: 400px;">
<div onclick="alert('asd');" style="width: 100px; height: 100px; background-color: #ff0000; margin: auto;">
</div>
</div>
我知道普鲁士已经正确地回答了这个问题,但它缺乏我在答案中寻找的信心。点击事件被touchstart中的preventDefault()所抑制的原因是因为任何连接到touchstart之后的事件都将被抑制。解决方案是将preventDefault()添加到touchmove事件中。
这在Mozilla文档处理点击:
下有更详细的解释在touchstart或第一次touchmove时调用preventDefault()事件阻止相应的鼠标事件触发,通常在touchmove上调用preventDefault()而不是touchstart。这样,鼠标事件仍然可以触发链接将继续工作。
你可以尝试阻止touchmove事件的默认动作
相关文章:
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何调用“;链接_;在onclick事件上使用Javascript
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 选择onclick事件jquery
- 如何刷新列表框内容onclick或blur事件
- 执行php函数的onclick事件的其他替代方案
- 动态创建OnClick事件Javascript
- onClick事件未触发reactjs
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 如何使用OnClick事件通过参数调用来调用PHP函数
- 第二个事件[onClick]不起作用
- 复选框事件onclick不起作用
- 如何在jQuery中为通知添加事件onClick
- JS函数不响应事件onclick
- 使用事件onclick访问if语句Javascript中变量的值
- 如何在事件onclick中抓取文本
- 如何绑定id < light >与事件Onclick
- 未找到JS事件OnClick
- 如何在js/prototype中触发具有特定顺序的事件(onclick)
- 无法触发javascript事件OnClick的复选框