// Текущий выбранный пункт 1-го уровня var top_selected = false // Текущий пункт 1-го уровня var menu_current = false // Состояние ресайза - ширина > минимума или < var resize_curstate = 1 // var return_mouse_1l_back = 0 // var menu_opened = false // menu_l1 - все главные пункты меню var menu_l1 = new Array () // timer var menu_out_timerID = {} function menu_l1_cleanlight () { cache = menu_l1.slice() while (cache.length) cache.shift().removeClass('over') } // Меню 1-го уровня - провели мышью по пункту function hover_mouseover (t) { if (t.hasClass('over')) return false // Используя кэш убираем подменю, убираем активность с меню menu_l1_cleanlight () // Ушли мышью - убрать подсветку // Убираем подсветку с выбранного пункта if (top_selected) top_selected.find('a.main_menu_first').removeClass('hover') // Добавляем подсветку к пункту на котором зависли мышью t.addClass ('over') menu_out_canceltimer() } // Меню 1-го уровня - убрали мышь с пункта function hover_mouseout (t) { // t.removeClass ('over') // Вышли, если не успеем за 5 секунд приземлиться, // тогда возврат подсветки menu_out_starttimer () /* if (top_selected) if (!$("#main_menu li.w_wrop.over").length) top_selected.addClass('over')*/ } // Меню 1-го уровня - нажатие мышью $("html").on('click', 'li.w_wrop a.main_menu_first', function() { // Элемент уже был выбран if ($(this).parent().hasClass('hover')) { hover_remove () top_selected = false menu_opened = false return false } // Убираем выделение с предыдущего текущего hover_remove () // ставим на новый $(this).addClass('hover') top_selected = $(this).parent() top_selected.addClass('hover') menu_opened = true return false }); // Меню 1-го уровня - убрать выделение с пункта function hover_remove () { // Если ничего не было выбрано, значит ничего не нужно делать if (!top_selected) return false // Убираем со всех $("#main_menu li.hover").removeClass('hover'); // Иначе - убрать выделение старого пункта top_selected //.removeClass('hover') // А также выделение на ссылке .find('a.main_menu_first').removeClass('hover') } var aaa var lia = false // $(document).ready(function(){ // Запоминаем первый уровень $("#main_menu li.first").each(function(){ var c = $(this); menu_l1.push (c); if (c.hasClass('cur')) { top_selected=c; menu_current=c; c.addClass('over') } }) cache = menu_l1.slice() while (cache.length) $("a.notalone", cache.shift()).attr('href', 'javascript:;') //$("#main_menu a.notalone").attr('href', 'javascript:;') // На ресайз $(window).resize(function (){ var w = $(window).width(); if (w < 1000 && resize_curstate == 1) { $('div.w_wrop').addClass('fix') resize_curstate = 0 } else if (w > 1000 && resize_curstate == 0) { $('div.w_wrop').removeClass('fix') resize_curstate = 1 } }); // Водим мышью по пунктам 1-го уровня $("#main_menu") .on('mouseover', 'li.first', function(){hover_mouseover ($(this))}) .on('mouseout', 'li.first', function(){hover_mouseout ($(this))}) //$("nav.main").live('mouseout', function(){hover_mouseout ($(this))}) // (но не убиралось при нажатии по меню) //$('.submenulist li a').live('click', function(t){ lia = true; $("#tmp").html('true'); return true }) //$('span.wrap').live('click', function(t){ return false }) // если false - будет блокировать все внутри, в т.ч. и ссылки // если true - пропустит к html click .. что делать?? $('html').on('click', 'span.wrap a', function(t) { slider_stop_anim () menu_out_starttimer('nivo_start_again', 300) aaa = 'span.wrap'; }) // Чтобы убиралось при нажатии куда-нибудь мимо $('html').on('click', '', function(t) { // Срабатывает только когда открыто окно if (!menu_opened) return true aaa = t // Не срабатывает в местах-исключениях: //ev = t.originalEvent.originalTarget || ev = t.target if (ev) { var cancel_act = false // На элементах меню if (ev.nodeName=='A' && ev.className=="main_menu_second") cancel_act = true if (ev.nodeName=='A' && ev.className=="main_menu_second strong") cancel_act = true // IE if (ev.nodeName=='LI' && ev.className=="sec_list all") cancel_act = true if (ev.nodeName=='LI' && ev.className=="sec_list all strong") cancel_act = true if (ev.nodeName=='LI' && ev.className=="sec_list cols2") cancel_act = true // Пустое место в меню 2-го уровня if (ev.nodeName=='UL' && ev.className=="submenulist") cancel_act = true if (ev.nodeName=='UL' && ev.className=="submenulist ext") cancel_act = true // На списке 3-го уровня if (ev.nodeName=='SPAN' && ev.className=="third_list") cancel_act = true if (cancel_act) { menu_out_canceltimer('nivo_start_again') menu_out_canceltimer() return true } } /*if (!lia) { $("#tmp").html('false'); lia = false;; return true } lia = false; $("#tmp").html('false;'); */ if (top_selected) { top_selected.removeClass('over') hover_remove () top_selected = false } if (menu_current) { top_selected = menu_current top_selected.addClass ('over') } // Скрываем /*top_selected .removeClass('hover') // А также выделение на ссылке .find('a.main_menu_first').removeClass('hover')*/ menu_opened = false }); $("html").on('click', 'input#search', function(){ if ($("input#search").val() == 'поиск') $("input#search").val ('').removeClass('not_specified') }); disableSelection ($('nav.main, span.wrap, #main_left')); }); // Когда выходим с пункта function menu_out_canceltimer(action) { if (!action) action = 'menu_out_action'; if (!menu_out_timerID[action]) return clearTimeout(menu_out_timerID[action]) menu_out_timerID[action] = false } function menu_out_starttimer(action, timewait) { if (!action) action = 'menu_out_action'; if (!timewait) timewait = 100 // Если таймер уже установлен, ничего не делаем if (menu_out_timerID[action]) return false // Включаем таймер menu_out_timerID[action] = setTimeout(action + "()", timewait); } function menu_out_action() { if (menu_opened) { menu_out_canceltimer() return } menu_l1_cleanlight () if (menu_current) { top_selected = menu_current top_selected.addClass ('over') } menu_out_canceltimer() } function nivo_start_again() { slider_start_anim () menu_out_canceltimer('nivo_start_again') }