From 9858aae31b7731c7c6549fdaac648f47de6d323c Mon Sep 17 00:00:00 2001 From: Heliodor Jalba Date: Sun, 16 Nov 2014 21:34:47 -0400 Subject: [PATCH 1/2] Make it work on elements that are added after initialization. Uses jQuery delegated events. --- README.md | 2 +- js/jquery.analytics-event-tracking.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1594df2..15c6209 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Usage Use `$('body').analyticsEventTracking();` to initialize the plugin. -All elements in the body tag which contain the class `.track` will be tracked. +All current and future elements in the body tag which contain the class `.track` will be tracked. Add `data-category="category-name"` to specify the category (default: 'General') Add `data-action="click"` to specify the action (default: 'click') diff --git a/js/jquery.analytics-event-tracking.js b/js/jquery.analytics-event-tracking.js index 9888713..f4d06b0 100644 --- a/js/jquery.analytics-event-tracking.js +++ b/js/jquery.analytics-event-tracking.js @@ -32,17 +32,17 @@ function bindEvents() { - _self.find(settings.selector).on('click', function(e) + _self.on('click', settings.selector, function(e) { trackEvent('click', $(this)); }); - _self.find(settings.selector + '-blur').on('blur', function(e) + _self.on('blur', settings.selector + '-blur', function(e) { trackEvent('blur', $(this)); }); - _self.find(settings.selector + '-complete').on('blur', function(e) + _self.on('blur', settings.selector + '-complete', function(e) { if($.trim($(this).val()) != '') { @@ -50,17 +50,17 @@ } }); - _self.find(settings.selector + '-focus').on('focus', function(e) + _self.on('focus', settings.selector + '-focus', function(e) { trackEvent('focus', $(this)); }); - _self.find(settings.selector + '-mouseover').on('mouseover', function(e) + _self.on('mouseover', settings.selector + '-mouseover', function(e) { trackEvent('mouseover', $(this)); }); - _self.find(settings.selector + '-change').on('change', function(e) + _self.on('change', settings.selector + '-change', function(e) { trackEvent('change', $(this)); }); From bb8248aba607a20c1da6fbf928d65629fb2a5dda Mon Sep 17 00:00:00 2001 From: Heliodor Jalba Date: Sun, 16 Nov 2014 21:36:14 -0400 Subject: [PATCH 2/2] Switch all indentation to tabs. That seems to be the preferred method. Makes the code format better on github.com. --- js/jquery.analytics-event-tracking.js | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/js/jquery.analytics-event-tracking.js b/js/jquery.analytics-event-tracking.js index f4d06b0..795d9ba 100644 --- a/js/jquery.analytics-event-tracking.js +++ b/js/jquery.analytics-event-tracking.js @@ -11,27 +11,27 @@ (function($) { - $.fn.analyticsEventTracking = function(options) - { - var settings = $.extend({ - selector: '.track', - default_category: 'General' - }, options); + $.fn.analyticsEventTracking = function(options) + { + var settings = $.extend({ + selector: '.track', + default_category: 'General' + }, options); - if(typeof ga !== 'function') - { - log('Google Analytics (analytics.js) is not initialized.'); - return false; - } + if(typeof ga !== 'function') + { + log('Google Analytics (analytics.js) is not initialized.'); + return false; + } - return $(this).each(function() - { - var _self = $(this); + return $(this).each(function() + { + var _self = $(this); - bindEvents(); + bindEvents(); - function bindEvents() - { + function bindEvents() + { _self.on('click', settings.selector, function(e) { trackEvent('click', $(this)); @@ -75,7 +75,7 @@ ga('send', 'event', category, action, label, value); } - }); + }); function log(message) { @@ -84,5 +84,5 @@ console.log(message); } } - } + } }(jQuery));