单击事件和mousedown事件冲突

时间:2018-06-08 08:19:12

标签: javascript

我试图同时使用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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:-1)

在鼠标按下时停止事件:

$( "p" ).click(function( event ) { event.stopPropagation(); // Do something });