首页 > Web开发 > 详细

js模拟dom失去焦点,阻止事件冒泡

时间:2021-08-17 20:30:21      阅读:22      评论:0      收藏:0      [点我收藏+]
需求:
  点击div,将mouseListening改变为:true
  点击除div外其他区域,将mouseListening改变为:false
dom
<div class="select-popup_panel" ></div>

js

export default {
  data() {
    return {
      mouseListening: false
    };
  },  
  mounted() {
    this.addListener();
  },
  destroyed() {
    this.removeListener();
  },
  methods: {
     addListener() {
      let self = this;
      let dom = document.getElementsByClassName(‘select-popup_panel‘)[0];
      dom.addEventListener(‘click‘,function(e){
        self.$set(self,‘mouseListening‘,true);
        e.stopPropagation(); // 阻止事件冒泡


     
    //js阻止事件冒泡
       //e.cancelBubble = true;
       //e.stopPropagation();

       //js阻止链接默认行为,没有停止冒泡
       //e.preventDefault(); 
       //return false;

}); document.addEventListener(‘click‘,()=>{self.$set(self,‘mouseListening‘,false)}); }, removeListener() { this.$set(this,‘mouseListening‘,false); let dom = document.getElementsByClassName(‘select-popup_panel‘)[0]; dom.removeEventListener("click", ()=>{}); document.removeEventListener("click", ()=>{}); } } }

 参考:https://www.cnblogs.com/jsanntq/p/7681942.html

js模拟dom失去焦点,阻止事件冒泡

原文:https://www.cnblogs.com/DeerLin/p/15152624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!