javascript - jQuery - 我想将特定元素类中的 html5 数据属性值提取到 onclick 属性值中

标签 javascript jquery css html custom-data-attribute

我正在分配一个 css 类 .ga-track 来指定我想要跟踪的元素,同时还分配数据属性 data-category="", data-action=""data-label=""data-value="" 等也适用于特定元素。

示例:

$('a, button, form, input').addClass('ga-track');

$('form#formid').attr({ '数据类别':'表单提交', 'data-action':'点击', 'data-label':'特定 FormID 标签' });

数据属性和类已正确添加。

现在我尝试通过 .attr('onclick', '_gaq.push( '_trackEvent', ...') 如您在下面的代码片段中所见。

$(".ga-track").attr("onclick", _gaq.push('_trackEvent', $(this).data('category'), $(this).data('action'), $(this).data('label'), $(this).data('value'), $(this).data('interaction')););

我不确定在 .attr() 函数中调用数据属性的能力。

我还尝试执行 .attr('onclick', myFunction()) 然后将 myFunction() 绑定(bind)到 jQuery 中的 _ga.push 调用,但它看起来就像我被迫附加一个 onclick 事件,并将 onclick 事件设置为与我尝试定位的元素内联。

编辑

这是我最终的工作代码:

$('.ga-track').on('click', function(){
    ga('send', $(this).data('category'), $(this).data('action'), $(this).data('label'), $(this).data('value'), $(this).data('interaction'));
});

在添加 onclick=""属性方面,.on 方法绝对优于 .attr 方法。

我还对 analytics.js 使用了错误的 GA 方法,之前使用的是 _gaq.push 函数而不是 ga('send' ...)

最佳答案

你不应该使用 jquery 的 onclick 属性,而是使用 .click() 函数或 .on('click',..) 和一个回调函数:

$('.ga-track').on('click', function(){
   _gaq.push('_trackEvent', $(this).data('category'), $(this).data('action'), $(this).data('label'), $(this).data('value'), $(this).data('interaction'));
})

还有什么问题:

关于javascript - jQuery - 我想将特定元素类中的 html5 数据属性值提取到 onclick 属性值中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879448/

相关文章:

javascript - 如何使用jquery对div做一系列的位置变化

javascript - 使用两个 Bootstrap 日期时间选择器时 CSS z-index 的 Catch 22 情况

javascript - nw.js 在后台运行很长时间后卡住

html - 强制固定宽度表格的单元格具有精确定义的宽度

css - 如何使用 Grunt 为 LESS 配置 sourceMaps?

javascript - 如何使用参数添加处理程序?

javascript - 根据条件验证动态创建的 div

javascript - jQuery/Javascript - 连接两个过滤器 - 仅显示 tr 和 td 匹配数组

javascript - 当我使用 jQuery 单击“选择”按钮时如何选择所有复选框

css - 使用 angular 2 动态编辑伪元素