我有一个提交事件,以便在提交表单时,我会调用一些AJAX API调用一些信息,然后我想在成功处理程序中运行代码,跟踪Mixpanel中的信息,然后重定向页面。我目前拥有的页面只是重定向页面而不提交Mixpanel信息。
我注释掉了窗口重定向,然后mixpanel内容开始记录。
这是我的代码:
$.post('record', Record, function(data) {
mixpanel.identify(data.user);
mixpanel.people.set({
'$email': data.user.email
});
return mixpanel.track('Event Created', {
'User': data.user.email,
'Event Date': Date.now(),
'Event Name': $('#record-title').val()
});
// this ends up submitting without the mixpanel stuff submitting
window.location.href = "https://" + window.location.host + "/records/dashboard";
});
确保mixpanel内容被发送然后window.location发生的最佳方法是什么。
答案 0 :(得分:4)
需要等待mixpanel.track
完成
您可以使用callback
参数
如果提供,将在跟踪事件后调用回调函数。
$.post('record', Record, function(data) {
mixpanel.identify(data.user);
mixpanel.people.set({
'$email': data.user.email
});
mixpanel.track(
// event name
'Event Created',
// properties
{
'User': data.user.email,
'Event Date': Date.now(),
'Event Name': $('#record-title').val()
},
// callback
function () {
window.location.href = "https://" + window.location.host + "/records/dashboard";
}
);
});