其他处理程序中的jQuery事件处理程序?

时间:2015-09-17 14:36:33

标签: javascript jquery google-analytics jquery-events

我正在编写一个jQuery插件,用于使用Google Analytics跟踪页面上的事件。我有一个简单的循环元素,它将事件处理程序附加到每个元素。它非常适合跟踪div等点击次数。

$('a.tracked').tracking();

(function( $ ) {
    $.fn.tracking = function() {
        return this.each(function() {
            $(this).on('click', function(){
                ga('send', 'event', 'category', 'action', 'label', 'value');
            });
        });
    };
}( jQuery ));

跟踪没有在链接上工作,所以我添加了一个测试,它会延迟默认行为,直到跟踪回调发生:

(function($) {
    $.fn.tracking = function() {
        return this.each(function() {
            $(this).on('click', function(event){
                if ($(this).prop('tagName')=='A'){
                    event.preventDefault();
                    var url = $(this).attr('href');
                    ga('send', 'event', 'category', 'action', 'label', 'value', {'hitCallback':function(){
                        document.location = url;
                    }});
                }else{
                    ga('send', 'event', 'category', 'action', 'label', 'value');
                }
            });
        });
    };
}( jQuery ));

也很棒!但是,我想跟踪"更聪明"已有事件处理程序的链接,例如灯箱或网络应用程序链接

  1. 有没有办法在其他事件处理程序之前强制我的事件处理程序被调用
  2. 我可以暂停"跟踪前的其他处理程序,以及" resume"他们在回调?
  3. 这种方法是否像我希望的那样灵活/有用?

0 个答案:

没有答案