$(document).ready(function(){
$('#commentform').submit(function(){
var postname = $('h2.post-title').text();
ga('send', 'event', 'Engagement', 'Comment', postname, 5);
});
});
首先。此代码将h2
标签的文本分配给post-title
在document
. 获取帖子标题的一种更可靠的方法是 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() 时表单不存在