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(...));