Fixing Slow WordPress Database Queries: Missing object_id Index in wp_term_relationships
April 26, 2025
Enable DKIM and Email service on all domains plesk
May 1, 2025If you’re using Elementor’s Nav Menu widget and you’ve enabled JavaScript lazy loading via WP Rocket or similar tools (like Cloudflare Rocket Loader), you may run into a frustrating issue:
Your nav menu appears, but
Hover effects and hamburger menu don’t work, and dropdowns won’t open.
This happens because Elementor’s JavaScript — particularly the initialization of the menu widget — gets delayed and doesn’t run when expected.
Here’s a clean and reliable fix.👇
Fully Re-initialize All Elementor Widgets After Lazy Load
<script>
(function() {
var maxWaitTime = 5000; // maximum 5 seconds
var intervalTime = 100; // check every 100ms
var waited = 0;
var interval = setInterval(function() {
if (typeof elementorFrontend !== 'undefined' && typeof elementorFrontend.init !== 'undefined') {
console.log('Elementor frontend detected, full reinit...');
jQuery.each(elementorFrontend.documentsManager.documents, function(id, document) {
if (document && typeof document.container !== 'undefined') {
document.container.each(function() {
elementorFrontend.elementsHandler.runReadyTrigger(jQuery(this));
});
}
});
clearInterval(interval);
clearTimeout(timeout);
} else {
waited += intervalTime;
}
}, intervalTime);
var timeout = setTimeout(function() {
console.warn('Elementor frontend not ready after 5s, giving up.');
clearInterval(interval);
}, maxWaitTime);
})();
</script>
This script:
- Waits up to 5 seconds for Elementor’s
elementorFrontendobject to become available. - Then manually triggers the initialization of each
elementor widget. - Prevents duplicate runs with clean-up logic.
Step 2: Fix Duplicate Arrow Icons in Dropdown Menus
Some sites end up showing two arrow icons (» » or ▼▼) next to each menu item with a dropdown. This is usually caused by both Elementor and your theme or a plugin (e.g., SmartMenus) injecting arrows.
Here’s the simple CSS fix:
.elementor-nav-menu .sub-arrow:nth-of-type(2) {
display: none !important;
}
This ensures only the first arrow icon remains visible, hiding the duplicate.
Result
After adding both the script and the optional CSS fix:
- Your nav menu works on hover.
- Dropdowns open correctly.
- Mobile hamburger menu responds after first click.
- No duplicate arrow icons.



