2011-09-01 48 views
0

以下是我正在考虑的事情。使用将包含我要发送到Mixpanel数据...类似的链接和按钮的数据轨道属性:创建数据轨道jQuery绑定到的数据跟踪数据的属性

点击

然后莫名其妙的jQuery绑定到包含数据跟踪任何点击。或者,也许绑定到所有的点击,如果项目包含一个数据轨道属性,拿这个值提交给mixpanel像这样:

mpq.track("Open slideshow", {'show': 'Xmas'}, function(){ myfunction() }); 

可能吗?好主意?馊主意?关于如何实现而不需要大量代码的任何想法?

感谢

回答

1

试试这个选择$('.YourClass[data-track]')

1

对不起复活,但这里是一个(未经测试)解决方案,它应该工作。您可以使用data-track属性以及在data-track-attrs属性中使用JSON字符串的任何其他事件属性来指定事件名称。 javascript将绑定到具有data-track属性的任何元素的点击处理程序,并将事件分派到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); 

    }); 
    });