最近项目中需要写一个模拟点击事件,但是模拟点击的是该div下的某个子元素,因为有冒泡点击,于是乎就不停的循环,直到堆栈溢出。(新手水平,不喜勿喷)
为阻止冒泡点击事件,找了大量资料。因为我前端水平了了,他们写的又少了部分内容,所以搞了很长时间。
下面我说下 如何 阻止冒泡点击例如:
<div οnclick="$(this).find('.test').trigger('click')">
<div class="test"></div>
</div>
这时候就会进入死循环
需要这个样子
<div οnclick="test(event, this)">
<div class="test"></div>
</div>
<script type="text/javascript">
function(event, obj) {
if(event.target == obj){
//当点击的是本div时再触发模拟点击事件(你们自己的可根据业务需求自己更改代码)
//参考:https://blog.csdn.net/wxl1555/article/details/53128966
}
}
</script>
下面我说下 将方法直接写在html中
要这个样子(一定不要写function(){} 这样会报错,直接写方法体中的代码)
<div οnclick="if(event.target == this){$(this).find('.test').trigger('click')}">
<div class="test"></div>
</div>