jQuery(document).ready(function($) { // ============================================ // FIX 1: Re-process excerpts after AJAX filter // ============================================ function reinitializeExcerpts() { // Target the specific excerpt widget $('.elementor-widget-theme-post-excerpt').each(function() { var $widget = $(this); var $container = $widget.find('.elementor-widget-container'); // Check if it's showing the placeholder if ($container.text().trim() === 'excerpt') { // Force Elementor to re-render this widget var widgetType = $widget.data('widget_type'); if (widgetType && elementorFrontend && elementorFrontend.elementsHandler) { var handler = elementorFrontend.elementsHandler.getHandler($widget); if (handler && handler.onInit) { handler.onInit(); } } } }); } // Listen for Elementor's AJAX completion $(document).on('elementor/render/loop-grid', function() { setTimeout(reinitializeExcerpts, 100); }); // Also try the alternative event $(document).on('elementor/ajax/posts/complete', function() { setTimeout(reinitializeExcerpts, 100); }); // ============================================ // FIX 2: Ensure filter clicks work properly // ============================================ $(document).on('click', '.e-filter-item', function(e) { var $button = $(this); // Update visual state immediately $('.e-filter-item').attr('aria-pressed', 'false'); $button.attr('aria-pressed', 'true'); // Log for debugging console.log('Filter clicked:', $button.data('filter')); }); });
Skip to content