4

使用 jQuery 很容易。使用纯 JavaScript 不是,至少要找出方法并不容易。if (event.clientX && event.clientY) { ... }提供某种检测,但不是 100% 准确。

4

2 回答 2

4

一种方法,但恕我直言,这是很有争议的。尝试这个:

HTMLElement.prototype.dispatchEvent = (function(dispev) {
    return function(event) {
        // Do your stuff
        dispev.call(this, event);
    };
})(HTMLElement.prototype.dispatchEvent);

有了这个,您可以在dispatchEvent调度以编程方式生成的事件时捕获每个调用。当然,这会稍微减慢调度速度,但除非您尝试触发大量事件,否则这应该不是问题。

在 IE8 中,您必须替换Element.prototype.fireEvent,而在 IE7 及更低版本中,您无法对此做任何事情。

于 2013-04-23T21:13:43.280 回答
0

Event.isTrusted可以使用到令人满意的水平。

于 2019-10-23T09:44:25.493 回答