2013-04-23 23 views
2

我試圖通過Google Universal Analytics跟蹤博客文章的評論。我希望標籤獲取博客文章的名稱,以便使用jQuery來引發該事件。如何使用jQuery觸發提交表單

到目前爲止,我有以下代碼(這是基於我的代碼用於其他網站和做工精細) - 很明顯,我必須忽視的東西,因爲它是不工作:

$(document).ready(function(){ 
    $('#commentform').submit(function(){ 
    var postname = $('h2.post-title').text(); 
    ga('send', 'event', 'Engagement', 'Comment', postname, 5); 

    }); 
}); 

有什麼想法?

(對不起,我會鏈接到博客,但它不活還)

感謝

+1

回報虛假的形式不存在; – ElSinus 2013-04-23 12:01:33

+2

你有什麼錯誤?什麼是問題?只是不工作? – 2013-04-23 12:03:04

+0

我認爲問題在於頁面正在刷新 – 2013-04-23 12:04:39

回答

2
$(document).ready(function(){ 
$('#commentform').submit(function(){ 
var postname = $('h2.post-title').text(); 
ga('send', 'event', 'Engagement', 'Comment', postname, 5); 
}); 
}); 

首先。此代碼將h2標記的文本與document中的post-title類別相關聯。一種更可靠的方式來獲得該職位的標題將是一個ID。

其次,它可能無法正常工作,因爲表單在Google Analitycs代碼觸發前被提交。因此,您應該停止默認行爲並在analitycs完成發送數據後提交表單。 (參見:https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback

$(document).ready(function() { 
    $(document).on('submit', 'form#commentform', function(e) { 
     var postname = $('#post-title').text(); 
     ga('send', { 
      'hitType': 'event', 
      'eventCategory': 'Engagement', 
      'eventAction': 'Comment', 
      'eventLabel': postname, 
      'eventValue': 5, 
      'hitCallback': function() { 
       //now you can submit the form 
       //$('#commentform').off('submit').trigger('submit'); 
       $('#commentform').off('submit'); //unbind the event 
       $('#commentform')[0].submit(); //fire DOM element event, not jQuery event 
      } 
     }); 
     return false; 
    }); 
}); 

編輯: 我才意識到從hitCallback代碼可能無法正常工作。修改後的版本應該調用DOM元素的事件並在結果中發送表單。

EDIT2: 修正對象事件的情況下,結合時的document.ready()被觸發GA(...)後

+0

感謝MythThrazz - 我複製/粘貼了您發佈的內容,但仍然無法正常工作。我沒有收到任何錯誤消息,只是沒有代碼解僱。我應該添加一些東西嗎? (我在h2中添加了id) – vikki 2013-04-23 13:22:51

+0

我忘了提及那是jQuery 1.9+的代碼你可以使用它嗎?還有哪些代碼不會觸發?事件回調還是hitCallback? – MythThrazz 2013-04-23 13:37:50

+0

是的,該網站使用jQuery 1.9 - 事件不發射 – vikki 2013-04-23 13:44:54

0

很難說沒有看一個實際的頁面,但可能是瀏覽器之前,GA的重定向到表單的提交網絡電話進行。您需要一種方法來等待ga完成,然後完成提交表單。

+0

Pre-Universal Analytics之前,您必須在提交活動後添加延遲。藉助Universal Analytics,您可以指定在發送數據後運行的[hitCallback](https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback)。 – mike 2013-04-23 14:06:03