/*----------------------------- dinamic_menu -----------------------------*/ (function($){ var defaults = { slideSpeed:300, executeTime:400 }; $.fn.dinamicMenu = function(options){ var el = this, lenEl = el.length; if(lenEl === 0)return this; if(lenEl > 1){ el.each(function(){$(this).dinamicMenu(options)}); return this; } var configs = {}, indexEl = el.index(), timer = [], funcInit = function(){ configs = $.extend({}, defaults, options); var dataDinamicMenuChild = el.data('dinamic-menu-child'); if(typeof dataDinamicMenuChild !== 'string') return false; el.on({ 'mouseenter':function(){ el.funcMouseEnter(dataDinamicMenuChild); }, 'mouseleave':function(){ el.funcMouseLeave(dataDinamicMenuChild); } }); el.funcPutEventMenuChild(dataDinamicMenuChild); }; el.funcMouseEnter = function(dataDinamicMenuChild){ var eleDinamicMenuChild = $(dataDinamicMenuChild); if(typeof timer[indexEl] === 'number'){ clearTimeout(timer[indexEl]); timer[indexEl] = void 0; } eleDinamicMenuChild .stop() .slideDown(configs.slideSpeed); }, el.funcMouseLeave = function(dataDinamicMenuChild){ timer[indexEl] = setTimeout(function(){ var eleDinamicMenuChild = $(dataDinamicMenuChild); eleDinamicMenuChild .stop() .slideUp( configs.slideSpeed, function(){ eleDinamicMenuChild.hide(); } ); }, configs.executeTime); }, el.funcPutEventMenuChild = function(dataDinamicMenuChild){ var eleDinamicMenuChild = $(dataDinamicMenuChild); eleDinamicMenuChild.on({ 'mouseenter':function(){ el.funcMouseEnter(dataDinamicMenuChild); }, 'mouseleave':function(){ el.funcMouseLeave(dataDinamicMenuChild); } }); }; funcInit(); }; })(jQuery); /*----------------------------- /dinamic_menu -----------------------------*/