PageSourceSearch

https://www.concrete.ie/wp-content/cache/min/1/wp-content/themes/c…/js/dropdown-hover.js?ver=1790047520

js concrete.ie collected 2026-09-25 06:08:04 UTC 2,821 bytes, 6 lines download raw bytes

1(function(){'use strict';document.addEventListener('DOMContentLoaded',function(){setTimeout(initDropdownHover,300)});function initDropdownHover(){console.log('Initializing dropdown hover behavior...');var dropdowns=document.querySelectorAll('.has-dropdown');if(dropdowns.length===0){console.log('No dropdown elements found');return}
2console.log('Found '+dropdowns.length+' dropdown elements');var isTouchDevice='ontouchstart' in window||navigator.maxTouchPoints>0;var mediaQuery=window.matchMedia('(min-width: 71em)');function shouldApplyHover(){return mediaQuery.matches&&!isTouchDevice}
3if(shouldApplyHover()){dropdowns.forEach(function(dropdown){dropdown.classList.remove('not-click')})}
4dropdowns.forEach(function(dropdown){var timeout;var dropdownMenu=dropdown.querySelector('.dropdown');dropdown.addEventListener('mouseenter',function(e){if(!shouldApplyHover())return;clearTimeout(timeout);this.classList.add('hover');if(dropdownMenu){dropdownMenu.style.display='block';dropdownMenu.style.opacity='1';dropdownMenu.style.visibility='visible'}
5var siblings=this.parentNode.children;for(var i=0;i<siblings.length;i++){if(siblings[i]!==this&&siblings[i].classList.contains('has-dropdown')){siblings[i].classList.remove('hover');var siblingMenu=siblings[i].querySelector('.dropdown');if(siblingMenu){siblingMenu.style.display='none';siblingMenu.style.opacity='0';siblingMenu.style.visibility='hidden'}}}});dropdown.addEventListener('mouseleave',function(e){if(!shouldApplyHover())return;var self=this;timeout=setTimeout(function(){self.classList.remove('hover');if(dropdownMenu){dropdownMenu.style.display='none';dropdownMenu.style.opacity='0';dropdownMenu.style.visibility='hidden'}},150)});if(dropdownMenu){dropdownMenu.addEventListener('mouseenter',function(e){if(!shouldApplyHover())return;clearTimeout(timeout)});dropdownMenu.addEventListener('mouseleave',function(e){if(!shouldApplyHover())return;var parentDropdown=this.closest('.has-dropdown');if(parentDropdown){timeout=setTimeout(function(){parentDropdown.classList.remove('hover');this.style.display='none';this.style.opacity='0';this.style.visibility='hidden'}.bind(this),150)}})}});document.addEventListener('click',function(e){if(!shouldApplyHover())return;var clickedDropdown=e.target.closest('.has-dropdown');if(!clickedDropdown){dropdowns.forEach(function(dropdown){dropdown.classList.remove('hover');var menu=dropdown.querySelector('.dropdown');if(menu){menu.style.display='none';menu.style.opacity='0';menu.style.visibility='hidden'}})}});window.addEventListener('resize',function(){if(!mediaQuery.matches){dropdowns.forEach(function(dropdown){dropdown.classList.remove('hover')})}});if(!mediaQuery.matches){dropdowns.forEach(function(dropdown){dropdown.classList.remove('hover')})}
6console.log('Dropdown hover behavior initialized successfully')}})()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.