如何使用mixpanel与twitter bootstrap下拉菜单?

Die*_*mes 5 ruby-on-rails mixpanel twitter-bootstrap

我的代码看起来像这样:

<div class="navbar">
  <div class="navbar-inner">
    <div class="container">
      <ul class="nav pull-right">
        <% if user_signed_in? %>
        <li class="dropdown" id="menu7">
           <a class="dropdown-toggle" id="username" data-toggle="dropdown" href="#">
             <%= current_user.full_name %>
             <b class="caret"></b>
           </a>
          <ul class="dropdown-menu">
            <li><%= link_to('Edit my account', edit_user_registration_path, 
                  :id => 'edit_account') %></li>
            <li><%= link_to('Logout', destroy_user_session_path, :method => 'delete',
                  :id => 'logout_link') %></li>
          </ul>
        </li>
        <% else %>
          <li><%= link_to('Login', new_user_session_path, :id => 'login_link') %></li>
          <li><%= link_to('Sign up', new_user_registration_path, :id => 'signup_link') %></li>
        <% end %>
     </ul>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的javascript事件是这些:

  mixpanel.track_links('#username', 'Username clicked')
  mixpanel.track_links('#edit_account', 'Edit account link clicked')
  mixpanel.track_links('#logout_link', 'Logout link clicked')
Run Code Online (Sandbox Code Playgroud)

我不知道为什么(我真的很奇怪!)只有'用户名点击'这个事件才有效.有没有人经历类似的事情?

Dre*_*uzz 0

一种可能性是您需要在选择器中包含链接标记:

  mixpanel.track_links('#username a', 'Username clicked')
  mixpanel.track_links('#edit_account a', 'Edit account link clicked')
  mixpanel.track_links('#logout_link a', 'Logout link clicked')
Run Code Online (Sandbox Code Playgroud)

这就是Mixpanel 文档中的完成方式。

另一种选择是您可能以错误的方式处理此问题。也许您不想跟踪链接的点击,而是想使用 ruby​​ API 并将跟踪器放入控制器中,如文档的这一部分所示。

因此,您可以在用户控制器中执行以下操作:

def edit
  track_event "edits account"
end
Run Code Online (Sandbox Code Playgroud)

在会话控制器中:

def destroy
  track event "logs out"
end
Run Code Online (Sandbox Code Playgroud)