$(document).ready(function(){
$('#commentform').submit(function(){
var postname = $('h2.post-title').text();
ga('send', 'event', 'Engagement', 'Comment', postname, 5);
});
});
初めに。このコードは、で見つかったh2
クラスを持つタグのテキストを割り当てます。投稿のタイトルを取得するより確実な方法は、ID です。post-title
document
次に、Google Analitycs コードが起動する前にフォームが送信されるため、機能しない可能性があります。したがって、デフォルトの動作を停止し、analytics がデータの送信を完了した後にフォームを送信する必要があります。(参照: 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() が起動されたときにフォームが存在しない場合のイベントバインディングを修正しました