1. 程式人生 > 其它 >js模擬dom失去焦點,阻止事件冒泡

js模擬dom失去焦點,阻止事件冒泡

需求:   點選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