JQuery выпадающее меню (помогите доделать) - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64587.7592
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 17.01.2011, 21:17   #1
DenverZ
Senior Member
 
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
По умолчанию JQuery выпадающее меню (помогите доделать)

Всем привет

есть меню:
Код:
<div class="left_column">
    <ul class="menu">
        <li><a href="/"><span><span>ГЛАВНАЯ</span></span></a></li>
        <li><a href="javascript://" id="drop_menu" abbr="#drop_menu_1"><span><span>ТЕСТ</span></span></a></li>
    </ul>
</div>
<div class="drop_menu" id="drop_menu_1">
    <p><a href="#">раздел меню</a></p>
    <p><a href="#">раздел меню</a></p>
    <p><a href="#">раздел меню</a></p>
</div>
есть подгрузка скрипта:
Код:
$(function()
{
    $('#drop_menu').dropMenu();
});
и сам скрипт
Код:
$(function()
{
    $.fn.dropMenu = function()
    {        
        var id_tip;
        if ($(this).attr('abbr')) id_tip = $(this).attr('abbr');
        if (!id_tip) return;
        
        $(this).toggle(function(event)
        {
            $(id_tip)
            .css({
                left: event.pageX,
                top: event.pageY,
                display: 'none'
            })
            .html($(id_tip).html())
            .appendTo('body')
            .fadeIn(100);
        }, function(event)
        {
             $(id_tip).fadeOut(100);
        });
    }
});
все отлично работает, т.е. при нажатии на ссылку "ТЕСТ" в меню, открывается выпадающее меню (появляется), при повторном нажатии, оно пропадает
НО вопрос в следующем, как мне сделать:
меню должно появляться при клике, как сейчас, НО исчезать, когда мышь выходит за границы самого появившегося меню ИЛИ за границы ссылки (при клике на которую мы показали меню)

т.е. что-то типа
$(id_tip).mouseout(....) не работает...

заранее благодарю
DenverZ вне форума  
Старый 17.01.2011, 21:26   #2
pingo
Senior Member
 
Аватар для pingo
 
Регистрация: 09.04.2007
Сообщений: 4,411
Бабло: $603509
По умолчанию

как у тебя это работает вообще? у тебя в html .drop_menu - это класс, а из функции ты управляешь id у div_а

не проще использовать slideToggle( скорость, [вызов] )?

PS кстати не очень корректно использовать увод мыши для действия с меню, раз юзер кликнул и раскрыл меню, он должен кликнуть для его закрытия, а если он не попадёт на пункт меню и оно закроется, то он уже не придёт к тебе на сайт больше.
__________________
VPN сервис для вебмастеров - UK, US, NL, RU, PL, SE, CA, EE, DE, BH[online] BH2, + пробный TRIAL GFB + удобный GUI топик на GFB
pingo вне форума  
Старый 17.01.2011, 22:49   #3
DenverZ
Senior Member
 
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
автор темы ТС По умолчанию

с классом ошибся =) на сайте все намного сложнее и все работает, но надо как я описал выше
насчет "раз юзер кликнул и раскрыл меню, он должен кликнуть для его закрытия" мне нужно именно как я написал выше, при уводе мыши из ссылки где он кликнул ИЛИ (!!!) самого меню, тогда закрываем
DenverZ вне форума  
Старый 17.01.2011, 22:51   #4
DenverZ
Senior Member
 
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от pingo Посмотреть сообщение
кстати не очень корректно использовать увод мыши для действия с меню
вообще первый раз такое слышу, все дроп и всплывающие меню работают по такому принципу, увел мышку из самого меню, оно закрылось!

просто я хочу сделать свой скрипт т.к. не нужны многие фишки сторонних скриптов, да и хочется все держать под контролем =) (т.е. написать самому)
DenverZ вне форума  
Старый 17.01.2011, 23:24   #5
pingo
Senior Member
 
Аватар для pingo
 
Регистрация: 09.04.2007
Сообщений: 4,411
Бабло: $603509
По умолчанию

без всяких плагинов:

$(document).ready(function() {
$("#drop_menu").click(function(){
$("#drop_menu_1").slideToggle(100); //с учётом что у данного дива уже display:none в css а не скриптом присвоен;
});
$("#drop_menu_1").mouseout(function(){
$(this).slideToggle(100); return false
});
});

drop_menu - линка в меню, drop_menu_1 - див с выпадающим меню
размеры сам поставь
хз, должно по идее работать
__________________
VPN сервис для вебмастеров - UK, US, NL, RU, PL, SE, CA, EE, DE, BH[online] BH2, + пробный TRIAL GFB + удобный GUI топик на GFB
pingo вне форума  
Старый 18.01.2011, 13:02   #6
DenverZ
Senior Member
 
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
автор темы ТС По умолчанию

не работает такое... как только мышка начинает двигаться, меню начинает моргать (пропадать и появляться) :-)

тут другое надо...
буду думать...
DenverZ вне форума