谁动了代码

来源: 前端 debug 的奇技淫巧

如何找到是谁阻止了冒泡,经常用于寻找我绑定的事件为什么没有被触发。

var tmpStopPropagation = MouseEvent.prototype.stopPropagation;

MouseEvent.prototype.stopPropagation = function(...args) {
  console.trace('stopPropagation');
  tmpStopPropagation.call(this, ...args);
};

当然滚动还有其他方法会触发,比如scrollIntoView,但思路都是一样的,代理这个方法即可。

var tmpScrollTop = element.scrollTop;

Object.defineProperty(element, 'scrollTop', {
  get: function() {
    return tmpScrollTop;
  },
  set: function(newVal) {
    console.trace('scrollTop');
    tmpScrollTop = newVal;
  }
})
Comments
Write a Comment