Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Analytics在knockout.js数据绑定中推送trackevent_Javascript_Jquery_Knockout.js_Google Analytics - Fatal编程技术网

Javascript Google Analytics在knockout.js数据绑定中推送trackevent

Javascript Google Analytics在knockout.js数据绑定中推送trackevent,javascript,jquery,knockout.js,google-analytics,Javascript,Jquery,Knockout.js,Google Analytics,我试图在点击链接时推送trackevent,但不知何故,这个事件似乎没有被触发,因为它没有显示在analytics仪表板中 这是相关的锚定标签 <a target="_blank" data-bind="attr:{href: 'http://www.xyz.de/profile/id/'+id()},click:function(){_gaq.push(['_trackEvent', 'Search', 'GoTo Homepage', 'Profile',slug]);}">

我试图在点击链接时推送trackevent,但不知何故,这个事件似乎没有被触发,因为它没有显示在analytics仪表板中

这是相关的锚定标签

<a target="_blank" data-bind="attr:{href: 'http://www.xyz.de/profile/id/'+id()},click:function(){_gaq.push(['_trackEvent', 'Search', 'GoTo Homepage', 'Profile',slug]);}">

我在正确的路径上吗?

我假设您只是试图处理一个单击事件,做一些事情,然后更改窗口。位置-

在锚点标记上注册单击绑定处理程序-

<a data-bind="click: trackEvent">

使用自定义绑定,我发现这很有用

ko.bindingHandlers.gaEvent = {
    init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
        {
            var value = valueAccessor();
            var gaObj = (typeof value === 'object' && !(value instanceof Array));
            if (gaObj) {
                var evt = value.event;
                if (evt.category != undefined);
                    ga('send', 'event', evt.category, evt.action != undefined ? evt.action : '', evt.label != undefined ? evt.label : '');
            }                
        }
    },
    update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
    }
};
您可以像这样应用数据绑定

div class="module" data-bind="gaEvent: { event: { category: 'Traffic', action:'Manage'} }"

它是概要文件的名称,锚定标记位于ko foreach中,是我正在迭代的ObservalArray中对象的属性。所以这应该没有什么要做的,我最新的猜测是,页面在push事件执行之前会发生更改
ko.bindingHandlers.gaEvent = {
    init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
        {
            var value = valueAccessor();
            var gaObj = (typeof value === 'object' && !(value instanceof Array));
            if (gaObj) {
                var evt = value.event;
                if (evt.category != undefined);
                    ga('send', 'event', evt.category, evt.action != undefined ? evt.action : '', evt.label != undefined ? evt.label : '');
            }                
        }
    },
    update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
    }
};
div class="module" data-bind="gaEvent: { event: { category: 'Traffic', action:'Manage'} }"