|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 64587.7592 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
17.01.2011, 21:17
|
#1
|
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(....) не работает...
заранее благодарю
|
|
|
17.01.2011, 21:26
|
#2
|
Senior Member
Регистрация: 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
|
|
|
17.01.2011, 22:49
|
#3
|
Senior Member
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
|
ТС
с классом ошибся =) на сайте все намного сложнее и все работает, но надо как я описал выше
насчет "раз юзер кликнул и раскрыл меню, он должен кликнуть для его закрытия" мне нужно именно как я написал выше, при уводе мыши из ссылки где он кликнул ИЛИ (!!!) самого меню, тогда закрываем
|
|
|
17.01.2011, 22:51
|
#4
|
Senior Member
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
|
ТС
Цитата:
Сообщение от pingo
кстати не очень корректно использовать увод мыши для действия с меню
|
вообще первый раз такое слышу, все дроп и всплывающие меню работают по такому принципу, увел мышку из самого меню, оно закрылось!
просто я хочу сделать свой скрипт т.к. не нужны многие фишки сторонних скриптов, да и хочется все держать под контролем =) (т.е. написать самому)
|
|
|
17.01.2011, 23:24
|
#5
|
Senior Member
Регистрация: 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
|
|
|
18.01.2011, 13:02
|
#6
|
Senior Member
Регистрация: 07.04.2010
Сообщений: 211
Бабло: $37395
ТС -->
|
ТС
не работает такое... как только мышка начинает двигаться, меню начинает моргать (пропадать и появляться) :-)
тут другое надо...
буду думать...
|
|
|
|