javascript - Mixpanel track_links 不适用于动态添加的元素

标签 javascript jquery mixpanel

我在使用带有动态添加的链接的 mixpanel.track_links 时遇到问题(在页面加载后)。

举个一般的例子,给定这个页面:

<div id="link-div"></div>
<input type="button" id="add-link" />
<script type="text/javascript">
mixpanel.track_links(".mixpanel-event", "event name", function(ele) { return { "type": $(ele).attr("type")}});
</script>

在某些用户操作中,使用 jquery 将链接添加到页面。例如:

$('#add-link).click(function() {
    $('#link-div').html('<a class="mixpanel-event" type="event-type" href="#>Link to track</a>');
})

问题是单击新创建的链接时不会触发 track_links。我希望有人可以分享他们在启用 track_link 函数以处理动态添加的链接方面的经验。

最佳答案

我很好奇,所以我检查了他们的代码并继续按照他们的建议去做。我测试了它,它工作正常。不过这需要 jQuery。

用法示例:mixpanel.delegate_links(document.body, 'a', 'clicked link');

// with jQuery and mixpanel
mixpanel.delegate_links = function (parent, selector, event_name, properties) {
    properties = properties || {};
    parent = parent || document.body;
    parent = $(parent);

    parent.on('click', selector, function (event) {
        var new_tab = event.which === 2 || event.metaKey || event.target.target === '_blank';

        properties.url = event.target.href;

        function callback() {
            if (new_tab) {
                return;
            }

            window.location = properties.url;
        }

        if (!new_tab) {
            event.preventDefault();
            setTimeout(callback, 300);
        }

        mixpanel.track(event_name, properties, callback);
    });
};

关于javascript - Mixpanel track_links 不适用于动态添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042957/

相关文章:

javascript - $.mobile.changePage 通过 AJAX 加载后的回调函数?

javascript - 样式 选择与所选选项具有相同样式的元素

javascript - jQuery根据标题更改下拉列表元素的背景颜色

jQuery 每 30 秒刷新一次

javascript - 如何将 mixpanel 与 angular2 集成

Javascript - 为什么从函数返回 array.push(x) 不会将元素 x 插入数组?

javascript - 将保存为 TEXT 的 html 保存到数据库并发送回浏览器?

javascript - jQuery attr ('id' )正在返回 'undefined'

javascript - 将 Mixpanel 与 Chrome 扩展集成(无浏览器操作)

android - 使用 Mixpanel 为 Android 自定义通知图标