JQuery是否会覆盖现有的内联事件处理程序?

我有一个由许多iframe构建的网站。 我正在努力监控用户活动 – 比如用户点击或keydown。

这只是为了查看用户是否空闲。

为此,我向下钻取所有iframe,div标签并注册hover和点击事件。 同时我不想覆盖/破坏由应用程序定义的现有内联事件处理程序。

jquery会覆盖退出的事件处理程序吗? 如果是的话,如何检查这一点以确保我不这样做?

这是我的用法。

$(divElementObj).click( function() { alert("div click"); }); 

不,jQuery使用addEventListener / attachEvent 。 内联和预先存在的处理程序不会被覆盖。

请参阅jsFiddle示例和jQuery源代码以了解如何完成此操作。

只要你不使用像event.stopPropagation(); 你应该没事。 event.stopPropagation(); 如果您的现有网站期望事件冒泡,则可能会导致问题。

有一个插件,但你应该只在你需要的时候这样做。

jQuery Override插件

 $(divElementObj).override('onclick', 'click', function(...));