0

我正在尝试在此页面上提交表单之前调用谷歌分析事件跟踪方法

这是我现在拥有的代码:

$(function() {

    $('#findbooking input').each(function(){
        $(this).blur(function() {

          if (!$(this).val()) {
              _gaq.push(['_trackEvent', 'Rebooking', 'completed', $(this).parent().parent().text()]);
              dcsMultiTrack('WT.ac', 'See_and_Change_my_booking_completed');
          } else {
              _gaq.push(['_trackEvent', 'Rebooking', 'skipped', $(this).parent().parent().text()]);

          }
       });
    });
});

问题是当用户从每个输入字段模糊时,dcsMultiTrack 请求会被触发两次。它应该只发送一次请求。

注意:我们无权访问/修改源代码,代码将作为解决方法放置在同一页面上。任何帮助都是高度合适的

4

1 回答 1

0

您可以使用提交处理程序来跟踪表单提交事件。在实际提交表单之前调用回调,因此您可以将跟踪逻辑放在那里。这种方法保证跟踪事件只触发一次,而不是每次用户将焦点从一个表单域移动到另一个时。

如果我正确地理解了您的注释,那么您提供的功能是您无权访问的外部脚本,您将直接在页面上放置脚本来覆盖它。在这种情况下,您需要删除以前附加到blur事件的处理程序。$('#findbooking input').unbind('blur');会成功的。

于 2013-05-16T07:25:10.770 回答