From 751a7865fc0348333629dcbdafb4b26c1aec7ae3 Mon Sep 17 00:00:00 2001 From: Pete Appleton Date: Tue, 30 Oct 2012 13:41:58 +0000 Subject: [PATCH 1/2] fix(removePatch): fire $destroy event when full jQuery is used The previous code relied upon internal jQuery structures which are not present in v.1.8.2 (current). This code uses the public API to fire the $destroy custom event, and so should work with any post-1.4 jQuery version. --- src/jqLite.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/jqLite.js b/src/jqLite.js index 1ba270b671d3..8e668b88bf6b 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -129,12 +129,7 @@ function JQLitePatchJQueryRemove(name, dispatchThis) { for(setIndex = 0, setLength = set.length; setIndex < setLength; setIndex++) { element = jqLite(set[setIndex]); if (fireEvent) { - events = element.data('events'); - if ( (fns = events && events.$destroy) ) { - forEach(fns, function(fn){ - fn.handler(); - }); - } + element.trigger('$destroy'); } else { fireEvent = !fireEvent; } From 9a4602f291b7876f2e65f25c0f6f9c6f9a9206c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 31 Oct 2012 12:33:04 +0000 Subject: [PATCH 2/2] Amended commit: Use triggerHandler() instead of trigger() to avoid the event bubbling and introducing other issues --- src/jqLite.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jqLite.js b/src/jqLite.js index 8e668b88bf6b..6b3b44008727 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -129,7 +129,7 @@ function JQLitePatchJQueryRemove(name, dispatchThis) { for(setIndex = 0, setLength = set.length; setIndex < setLength; setIndex++) { element = jqLite(set[setIndex]); if (fireEvent) { - element.trigger('$destroy'); + element.triggerHandler('$destroy'); } else { fireEvent = !fireEvent; }