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

时间:2011-05-18 19:49:37

标签: javascript event-handling jquery

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

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

为此,我深入研究所有iframe,div标签以及注册悬停和点击事件。 同时我不想覆盖/破坏由应用程序定义的现有内联事件处理程序。

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

这是我的用法。

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

3 个答案:

答案 0 :(得分:5)

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

See jsFiddle examplejQuery source以显示如何完成此操作。

答案 1 :(得分:0)

只要您不使用event.stopPropagation();之类的内容,您就可以了。如果您的现有网站期望事件冒泡,event.stopPropagation();可能会导致问题。

答案 2 :(得分:0)

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

jQuery Override Plugin

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