我试图同时使用on click事件绑定元素,也将它绑定在mousedown上,所以它有点像用户单击任何地方而不是具有类.main的元素然后它的孩子不会触发mousedown事件,但问题是它触发了.main的子事件的事件,并且没有触发绑定到其子节点的onclick事件。有什么想法,请帮忙吗?但如果删除了mousedown事件,则会触发绑定到.main子节点的onclick事件。
for(var i=0;i<document.querySelectorAll('.main li').length;i++){
document.querySelectorAll('.main li')[i].addEventListener('click',function(){
alert(this.querySelector('a').textContent);
});
}
//hook a touchstart and mousedown event
addEventListener("mousedown", function(e){
var t = /touch/.test(event.type) ? event.targetTouches[0] : event.target;
if( t.classList.contains('main') ){
return false;
}else{
alert('not clicked on body');
}
},true);
&#13;
.main{
height:200px;
background:red;
width:300px;
}
&#13;
<ul class="main">
<li><a href="#">test 1</a></li>
<li><a href="#">test 2</a></li>
<li><a href="#">test 3</a></li>
<ul>
&#13;
答案 0 :(得分:-1)
在鼠标按下时停止事件:
$( "p" ).click(function( event ) {
event.stopPropagation();
// Do something
});