javascript - jQuery - 我可以在它自己的处理程序中触发事件吗?

标签 javascript jquery html google-analytics

所以我基本上有一个 .click 事件,它执行 e.preventDefault()。但是,一旦代码执行完毕,我希望它在解除绑定(bind)后重新执行事件。

所有这一切的背景是,我正在尝试使用谷歌分析 (analytics.js) 设置出站链接事件跟踪。

<a href="http://www.example.com/" id="link1"><img /></a>    
<script>        
    $("#link1").click(function(e) {
        e.preventDefault();

        ga('send', 'event', 
            'category', 
            'action', 
            'label', 
            { 
                'hitCallback': function() {                                         
                    $(this).unbind(e).trigger("click");
                } 
            }
        );
    });
</script>

此设置是必需的,否则页面会在事件发送之前终止。 另外,我想让代码片段尽可能独立,因为这个脚本会被复制粘贴到很多地方。

我希望有类似 e.sleepDefault() 的东西;和 e.wakeDefault();

最佳答案

试试这个:

 $("#link1").click(function(e) {
    e.preventDefault();
    var url = $(this).prop('href');
    ga('send', 'event', 
        'category', 
        'action', 
        'label', 
        { 
            'hitCallback': function() {                                         
                window.location = url;
            } 
        }
    );
 });

关于javascript - jQuery - 我可以在它自己的处理程序中触发事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21428358/

相关文章:

javascript - 从 AWS 中的参数存储中获取值

javascript - 我怎么能等到新创建的元素是 "ready"(所有脚本都已下载)

javascript - 使用 JavaScript 更改背景重复图像

javascript - 检查变量是否未定义不起作用

html - 绝对位置与 Left :100% , 子元素脱离父容器

javascript - 显示: flex does not work时如何解决

javascript - JQuery UI 1.11 将选项卡设置为事件

jquery - 可选 `new` 运算符

css - IE10 : @font-face doesn't work

html - 没有 z-index 的堆叠?