我们正试图让我们的网站摆脱通常有 100 多个元素上的内联 onclick="" 处理程序。其中大部分是通过 onclick 属性附加的 Omniture 点击跟踪功能。
由于它们都是相同的代码,我想使用 jQuery 的 .live() 函数简单地将单个处理程序绑定到文档。然后我们将更新我们想要跟踪的链接/按钮/元素,使其具有唯一的标记,例如 class="trackable"。我们让处理程序注册如下(考虑这个伪代码):
$('.trackable').live('click', function(e) {
trackClick();
};
显然我们需要一些参数,我们会从事件源对象中推断出这些参数,可能是通过数据属性或其他方式。
我关心的主要是可靠性。根据我的阅读,live() 处理程序不会被中断——例如,事件应该在浏览器卸载页面之前冒泡并被处理。不过,我不确定。我对浏览器的兼容性也有一些担忧。
有人对 live() 事件绑定和 Omniture(或 Google Analytics)有任何经验吗?