【发布时间】:2018-09-30 10:35:02
【问题描述】:
我不知道我想要完成的事情是否可行。我想覆盖给定 HTML 页面的所有锚对象(A 标记)的默认行为。我知道我可以遍历所有A 元素,并从body 元素onload 方法中动态地为每个元素添加onclick 调用,但我正在寻找更绝对的解决方案。我需要的是为所有A 元素分配一个onclick 操作,该操作调用一个将元素href 属性作为参数传递的方法,因此如下:
<a href="http://domain.tld/page.html">
动态变为:
<a href="http://domain.tld/page.html" onclick="someMethodName('http://domain.tld/page.html'); return false;">
就像我说的那样,理想的方法是在文档加载时以某种方式完全覆盖 Anchor 类。如果不可能,那么我将求助于循环所有 A 元素方法(我已经知道该怎么做)。
【问题讨论】:
-
好吧,有了事件委托,他们并不都需要将事件附加到他们身上。例如,参见 jQuery 中的“Live”。或者阅读 JavaScript 事件委托。
-
通常这应该在 HTML 到达客户端之前完成。如果您的页面很复杂,您可能会遇到很多带有事件委托的程序。
-
实际上,对于“点击”事件,我希望委派问题更少。像跟踪鼠标这样的事情会杀了你。
-
看看这个关于 jQuery 的“Live”...zachleat.com/web/2009/05/08/…
标签: javascript dom overriding anchor