【发布时间】:2015-05-26 18:44:27
【问题描述】:
当用户单击某种类型的链接时,我试图在 MixPanel 中记录一个事件。我正在使用 JQuery 不显眼地做到这一点,据我所知,我需要添加一个回调函数,以便在记录事件后将用户带到 URL。
这是我正在使用的代码:
<script type="text/javascript">
$("#more-posts").click(function() {
event.preventDefault();
mpq.track("More Posts", function(){
window.location = $(this).attr("href");
});
});
</script>
不幸的是,这既不会将用户带到页面也不会记录事件,但我在 Chrome 的 Javascript 控制台中没有看到任何错误。
任何想法可能是什么问题?
更新:还根据 cmets 中的建议尝试了此代码:
<script type="text/javascript">
function go_to_link(link) {
window.location = link;
}
$("#more-posts").on("click", function(event) {
event.preventDefault();
mpq.track("More Posts");
setTimeout("go_to_link($("#more-posts").attr("href"))", 2000);
});
</script>
它现在重定向到正确的链接,但仍然不记录事件。
【问题讨论】:
-
event来自哪里?应该是点击回调的参数。 -
我不这么认为。它的存在是为了防止 click 事件的默认行为,以便以下代码有机会执行。如果我做出您建议的更改,单击只会将用户带到 URL 而不记录事件。它还给出了“未捕获的引用错误”。
-
chrome有什么错误?
-
您使用的是什么版本的 jQuery?你真的应该使用
.on('click', function(event) {...}。 -
这个问题可能是我在 KissMetrics 遇到的类似问题。他们的 JavaScript 代码根本没有时间监听事件。尝试在重定向之前执行
setTimeout并查看它是否正确记录了事件。如果是这样,那么这就是您的问题,您可能希望在他们到达新位置后记录点击事件。
标签: javascript jquery mixpanel