使用嵌套元素处理触摸事件
handling touch event with nested elements?
我在jquery和我的html布局方面遇到了这个问题。
例如,假设您有一个id为"#test"的div元素和一个class为"nested"的子元素img
<div id="test">
<img class="nested" src="example.jpg">
</div>
Jquery我有两个触摸事件,
$(document).on("click", "#test", function(){
console.log("clicked on test id");
});
$(document).on("click", ".nested", function(){
console.log("clicked on nested element");
});
我的问题是第二次触摸事件,当用户点击嵌套项时,这也会触发第一个元素,因为很明显它是嵌套的,我不希望发生这种情况。
我很确定这是一个简单的问题,但我似乎不明白。
使用event.stopPropagation();
$(document).on("click", "#test", function(){
console.log("clicked on test id");
});
$(document).on("click", ".nested", function(e){
e.stopPropagation();
console.log("clicked on nested element");
});
引用事件.stopPropagation()
您需要使用event.stopPropagation()停止传播
$(document).on("click", ".nested", function(e){
e.stopPropagation();
console.log("clicked on nested element");
});
在子元素click
事件中使用event.stopPropagation()
:
event.stopPropagation():
停止将事件冒泡到父元素,防止任何父处理程序收到事件通知。添加
$(document).on("click", ".nested", function(){
event.stopPropagation()// prevents the action without notifying the parent
console.log("clicked on nested element");
});
相关文章:
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 如何使用纯javascript的移动触摸事件
- 移动定时触摸事件
- 模拟html5的触摸事件
- Phonegap/Cordova:如何添加Javascript多点触摸事件
- 如何在AngularJS中监听点击事件,而不是触摸事件
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 在 Firefox 中“解析”触摸事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- 在移动 Safari 上向下拖动时,触摸事件停止触发 - iPad HTML5
- 如何在 javascript 中触发触摸事件
- 为什么触摸事件不在手指按压的中间
- 如何启用离子多点触摸事件
- 当我将位置更改为绝对时,画布精灵表和触摸事件不起作用
- 当元素在事件绑定后附加到DOM时,触摸事件不起作用
- JavaScript的触摸事件
- Tizen可穿戴设备屏幕顶部的Javascript触摸事件
- 用标准javascript而不是jquery中的mousedown、mousemove和mouseup触摸事件句柄
- (窗口中的'ontouchstart')返回true,但没有触摸事件
- 传单触摸事件未触发