diff --git a/jquery.appear.js b/jquery.appear.js index ace0c5a..d508cfd 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.4 + * Version: 0.3.5 */ (function($) { var selectors = []; @@ -19,7 +19,7 @@ } var $window = $(window); - var $prior_appeared; + var $prior_appeared = []; function process() { check_lock = false; @@ -27,16 +27,20 @@ var $appeared = $(selectors[index]).filter(function() { return $(this).is(':appeared'); }); + + if (typeof $prior_appeared[index] == 'undefined') + { + $prior_appeared[index] = $([]); + } - $appeared.trigger('appear', [$appeared]); + var $new_appeared = $appeared.not($prior_appeared[index]); + $new_appeared.trigger('appear', [$new_appeared]); - if ($prior_appeared) { - var $disappeared = $prior_appeared.not($appeared); - $disappeared.trigger('disappear', [$disappeared]); - } - $prior_appeared = $appeared; + var $disappeared = $prior_appeared[index].not($appeared); + $disappeared.trigger('disappear', [$disappeared]); + + $prior_appeared[index] = $appeared; } - } // "appeared" custom filter $.expr[':']['appeared'] = function(element) {