这就是我在想的事情。在链接和按钮中使用数据轨道属性,其中包含我要发送给Mixpanel的数据...类似于:
点击它
然后以某种方式jQuery绑定到包含数据轨道的任何点击。或者绑定到所有点击,如果项目包含数据轨道属性,请取值并提交到mixpanel,如下所示:
mpq.track("Open slideshow", {'show': 'Xmas'}, function(){ myfunction() });
可能?好主意?馊主意?关于如何实现而不需要大量代码的任何想法?
由于
答案 0 :(得分:1)
尝试此选择器$('.YourClass[data-track]')
答案 1 :(得分:1)
抱歉复活,但这是一个应该有效的(未经测试的)解决方案。您可以使用data-track
属性指定事件名称,并使用data-track-attrs
属性中的JSON字符串指定任何其他事件属性。 javascript将绑定到具有data-track
属性的任何元素的click处理程序,并将事件分派给Mixpanel。如果本机JSON解码器不可用,它将无声地失败。
<div class="header">
<a href="#" data-track="Login" data-track-attrs='{ "where": "header" }'>login</a>
</div>
<a href="#" data-track="Open slideshow" data-track-attrs="{ show: 'Xmas' }">open xmas</a>
<div class="footer">
<a href="#" data-track="Login" data-track-attrs='{ "where": "footer" }'>login</a>
</div>
<script type="text/javascript">
$(function() {
$("body").on('click', '[data-track]', function(evt) {
var event_name = $(this).data('track');
var event_attrs;
try {
event_attrs = JSON.parse($(this).data('track-attrs'));
} catch(e) {}
mixpanel.track(event_name, event_attrs);
});
});
答案 2 :(得分:-1)
一个老问题的超级迟到答案,但这里是一个jQuery插件,它正是这样做的(还有更多): http://os.lucidfusion.com/datatrack/