JavaScript中如何移除匿名的事件處理函式?

時間 2021-06-09 05:35:12

1樓:

dom的事件機制是訂閱&觀察,所以移除事件的時候需要提供事件名,也就是繫結的時候觸發的函式名。要是匿名函式的話,沒有名字,也就無法移除正常。

但是有很多hack的方法,比如直接改寫element物件原型上的addEventListener,removeEventListner方法等等。

乙個簡單粗暴的方法是直接給重新賦值乙個空的事件函式,以click為例:

element.click=() => {}

2樓:夏夜煙火祭典少年

推乙個大神的方法,

window.pro_elt_addEventListener=Element.prototype.addEventListener;};

3樓:itlr

// 匿名函式沒有名字但可以有引用

varclickHandler

=function

(evt){}

// clickHandler仍然指向乙個匿名函式// 「clickHandler」不是函式名element

.addEventListener

('click'

,clickHandler

,false

);element

.removeEventListner

('click'

,clickHandler);

如何理解 Javascript 中的 Promise 物件的狀態不受外界影響?

胡小濺 你說反了,Promise 的狀態就是靠外界修改的。它自己並不會自發地從 Pending 變成 Resolved,它只是將可以改變內部狀態的 resolve 和 reject 方法暴露出來,由使用者決定什麼時候改變狀態。唯一的限制是狀態只能改變一次,一旦從 Pending 變為其它狀態就不再受...

javascript中object keys方法使用的問題(實操和書上寫的不相符)?

混混蛋 Object.keys obj 返回obj的自身 不包含原型鏈上的 的所以可列舉屬性的名字陣列 for in迴圈則包含原型鏈.for name in obj Object.getOwnPropertyNames obj 返回obj自身 不含原型鏈上的 的所有屬性名陣列,包括不可列舉的 想要獲...

javascript中Element nodeValue和innerHTML有什麼區別

DOM中的節點是分好幾種型別,常見的有 1.文件節點 document,唯一 2.元素節點 那些個標籤div,p之類 3.屬性節點 class,src這種 4.文字節點 插入在p,div內的文字 其它。其中element.nodeValue,是節點的值,其中屬性節點和文字節點是有值的,而元素節點沒有...