2011-09-01 46 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); 

    }); 
    });