js自定義事件偵聽

// Create the event.  //創(chuàng)建一個事件
var event = document.createEvent('Event'); //Event是自定義的事件名
// 或者: var event = new Event("Event");

// Define that the event name is 'build'.
event.initEvent('build', true, true);  //這里是初始化事件,  //就是些參數(shù)而已.

// Listen for the event.
elem.addEventListener('build', function (e) {    //給事件添加監(jiān)聽
  // e.target matches elem
}, false);

// target can be any Element or other EventTarget.
elem.dispatchEvent(event);    //觸發(fā)事件

監(jiān)聽LocalStorage.setItem事件

const listenStorageKeys= ["shop_id"];  // 需要偵聽的localstorage
// 添加js 偵聽localstorage
var orignalSetItem = localStorage.setItem;
localStorage.setItem = function(key,newValue){
  if(listenStorageKeys.includes(key)){
    var setItemEvent = new Event("setItemEvent."+key);
    // 自定義字段
    setItemEvent.set_key = key;  
    setItemEvent.set_value = newValue;
    window.dispatchEvent(setItemEvent);
  }
  orignalSetItem.apply(this,arguments);
};

// 使用
window.addEventListener("setItemEvent.shop_id", function (e) {
 console.log(e.set_key ,e.set_value,"cccccccccccc")
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容