87,995
社区成员




我也遇到和你几乎相同的问题。 我是在做自动化测试的插件时遇到的,获取到用户的所有操作轨迹后进行回放时,出现一种情况:以element-ui为例,element的select组件点击时会出现一个选择弹框,点击空白处会自动关闭;当我在回放这不操作时发现只派发click时间不会自动关闭。后来看了这部分的源码,select组件绑定了一个clickoutside的指令,这个指令会收集mouseup和mousedown事件(这是干什么的请自行查看源码);当时我也直接在click事件前先触发这两个方法,但还是不生效,后来多写了一层触发,先触发mouseenter=>mouseup=>click ;
按这种流程就没问题了。也不知道是什么原因导致的,你可以试试,派发click事件前先派发鼠标事件
所以2022年了,还没有答案吗。。。写个脚本代替手点,发现要用鼠标点击过以后,脚本的点击才能失效。而且每个点击元素都要手动点一下。。。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div class="a">aaa</div>
<script type="text/javascript">
// document.querySelector('.a').onclick = function() {
// console.log('13');
// }
document.addEventListener('click', function(e) {
var target = e.target || e.srcElement
if(target.className == '.a') {
// 你的绑定事件回调函数
}
})
var div = document.createElement('div')
div.className = 'a'
div.innerText = 'aaa'
document.querySelector('body').append(div)
</script>
</body>
</html>