diff --git a/conservancy/static/js/supporter-page.js b/conservancy/static/js/supporter-page.js index d0b8208d03e5ef603e307d6f5541f0c43a50a2fa..1ae36a46db197226f2f0aec73bb32e64936206e5 100644 --- a/conservancy/static/js/supporter-page.js +++ b/conservancy/static/js/supporter-page.js @@ -162,6 +162,18 @@ $(document).ready(function() { var $ourexpandablesection = $(this); $expandlink.on('click', function(event) { $expandlink.fadeOut('slow'); - $ourexpandablesection.find('.read-more').each(function(index) { $(this).click(); }); }); + $ourexpandablesection.find('.read-more').each(function(index) { $(this).click(); }); + // Don't laugh. I'm running this twice because the expandable + // sections are hidden by actually their text from the DOM and + // storing it in a closure, to be reinstated later. That means when + // the above ".find('.read-more')" runs it only finds the one + // top-level .read-more element because the children have been + // temporarily removed from the page. After this top-level element + // has been clicked to restore it's body, we can run this again and + // .find() the children elements. I suspect this may have worked in + // the past if there were multiple sections all at the top-level, + // rather than being nested under "Our Year in Review". + $ourexpandablesection.find('.read-more').each(function(index) { $(this).click(); }); + }); }); });