Javascript 将jQuery on()用于内存中的对象

Javascript 将jQuery on()用于内存中的对象,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在编写一个jQuery插件,用于使用html5数据属性处理Google分析跟踪 代码仍处于alpha阶段,但附件显示它确实跟踪了各个dom元素并推送了正确的结果。(您将在控制台中看到所有这些) 到目前为止,我唯一真正担心的是内存使用。目前,我正在将单个事件处理程序绑定到每个元素,正如我们都知道的那样,这可能会导致混乱和内存密集 理想情况下,我希望将每个跟踪器对象存储在一个中心位置,并在jQueryon()函数中执行某种查找,以使用正确的上下文触发pushToGogle() 不幸的是,我的Ja

我正在编写一个jQuery插件,用于使用html5数据属性处理Google分析跟踪

代码仍处于alpha阶段,但附件显示它确实跟踪了各个dom元素并推送了正确的结果。(您将在控制台中看到所有这些)

到目前为止,我唯一真正担心的是内存使用。目前,我正在将单个事件处理程序绑定到每个元素,正如我们都知道的那样,这可能会导致混乱和内存密集

理想情况下,我希望将每个跟踪器对象存储在一个中心位置,并在jQuery
on()
函数中执行某种查找,以使用正确的上下文触发
pushToGogle()

不幸的是,我的JavaScript技能不能很好地解决这个问题,我也无法找到一种有效的方法来以简洁的通用方式包装所有内容


有什么想法吗

您可以使用事件冒泡

$(document).on('click', 'a.trackEvent', function () { /* do complicated things */ });
因此,基本上,文档中的任何a.trackEvent元素(以及您与类trackEvent的所有链接)都会在单击时执行该函数

优点是内存中只存在一个函数,如果动态创建新的dom元素,它们也将被跟踪。您只需要添加一些代码来标识元素


这曾经是活动函数:

结果表明,该过程实际上非常简单,只需要一些重构


我已经在这里添加了我的代码插件,这样任何关注问题的人都可以从我的示例代码中学习。

+1,因为我需要类似的东西(如果你不介意的话:)@karim79-干杯!我一点也不介意!我会在周末把它贴在github上,让人们在上面工作。我完全是关于开源的。@karim79我已经在这里向github添加了工作代码。嗯,是的。。这就是我最终要做的。如果你看一下我的问题,我提到我将使用
on()
我遇到的问题是如何确保我的动态生成的对象可以通过该方法访问。旁注:
on()
实际上是对事件绑定过程的完全重写,包括
delegate()
live()
bind()