var nextBodyIdx = 0; $(document).ready(function() { $("head").append(''); var newStyleElement = $("head").children(':last'); newStyleElement.html('.limit-height{max-height: ' + postLimitHeight + 'px; overflow: hidden; display:inline-block;}'); handleNewWallItemBodies(); document.addEventListener("postprocess_liveupdate", function() { handleNewWallItemBodies(); }); }); function handleNewWallItemBodies() { $('.wall-item-body:not(.showmore-done)').each(function() { var $el = $(this); $el.addClass('showmore-done'); if ($el.has('button.content-filter-button').length > 0) { $el.removeClass('limitable'); return; } if (!$el.attr("id")) { $el.attr("id", nextBodyIdx++); } addHeightToggleHandler($el); var limited = processHeightLimit($el); if (!limited) { var mutationObserver = new MutationObserver(function() { var limited = processHeightLimit($el); if (limited) { mutationObserver.disconnect() } }); mutationObserver.observe($el[0], { attributes: true, characterData: true, childList: true, subtree: true, attributeOldValue: true, characterDataOldValue: true }); $el.imagesLoaded().then(function() { processHeightLimit($el); }); } }); } function addHeightToggleHandler($item) { var itemId = parseInt($item.attr("id").replace("wall-item-body-", "")); $item.data("item-id", itemId); var toggleId = "wall-item-body-toggle-" + itemId; $item.append('
'); $item.addClass("limitable limit-height"); var $toggle = $("#" + toggleId); $toggle.show(); $toggle.click(function(el) { $item.toggleClass("limit-height"); $(this).hide(); $item.removeClass("limitable"); }); } function processHeightLimit($item) { if (!$item.hasClass("limitable")) { return false; } var itemId = $item.data("item-id"); var $toggle = $("#wall-item-body-toggle-" + itemId); if ($item.height() < postLimitHeight) { $item.removeClass("limit-height"); $toggle.hide(); return false; } else { $item.addClass("limit-height"); $toggle.show(); return true; } }