Проблема с show()/hide()
Всем привет. Возникла проблема при использовании функции:
<script type="text/javascript"> $('#kateg-fon').hover(function() { $('#kat-dop-opt').show(150); }, function() { $('#kat-dop-opt').hide(150); }); </script> Суть скрипта заключается в том, что при наведении курсора на кнопку открывается дополнительная инфа. Если убираем курсор с кнопки - инфа закрывается. Это работает. Но проблема в следующем... При многоразовом "Наведении/выведении" "туда, сюда" курсора на кнопку инфа начинает открываться, закрываться, открываться, закрываться, и т. д. Она будет открываться и закрываться столько раз, сколько раз мы прошли курсором по кнопке. Как остановить выполнение функции? Как только мы убираем курсор с кнопки. Заранее спасибо. |
(function () { var callee = arguments.callee; $("#kateg-fon").one("mouseover mouseout", function () { $("#kat-dop-opt")[ event.type == "mouseover" ? "show" : "hide" ](150, callee); }); })(); |
Спасибо, но не помого. Почти все так же.
|
Я знаю, что "вконтакте" подобная проблема решена. Вот часть их скрипта.
Тут при наведении мышки изменяется цвет фона кнопки var close_button = ge('im_x'); var popup_button = ge('im_popup'); var sound_button = ge('im_sound'); var fadeToColor = function(color, master) { return function() { this.fading = master ? true : false; animate(this, {backgroundColor: color}, 200); } } addEvent(close_button, 'mouseover', fadeToColor('#FFFFFF')); addEvent(close_button, 'mouseout', fadeToColor('#9CB8D4')); addEvent(close_button, 'click', im.popup ? function() { window.close(); } : winBoxes.im.hide); if (im.popup) { hide('im_popup_button'); im.fix_popup(); addEvent(window, 'onorientationchange' in window ? 'orientationchange' : 'resize', im.fix_popup); } else { addEvent(popup_button, 'mouseover', fadeToColor('#FFFFFF')); addEvent(popup_button, 'mouseout', fadeToColor('#9CB8D4')); addEvent(popup_button, 'click', im.go_popup); if (window.im_check) { winBoxes.im.setOptions({onHide: function() { window.im_ts = im.ts; setTimeout(window.im_check, 1000); }}); } } addEvent(sound_button, 'mouseover', fadeToColor('#FFFFFF')); addEvent(sound_button, 'mouseout', fadeToColor('#9CB8D4')); addEvent(sound_button, 'click', function() { if (im.sound_off) { im.sound_off = false; ge('im_sound').className = ''; } else { im.sound_off = true; ge('im_sound').className = 'off'; } }); |
var O = $("#kateg-fon"), S = $("#kat-dop-opt"); O.one("mouseover", function H() { S.show(150, function () { O.one("mouseout", function (event) { if ( $(event.relatedTarget).closest("#kateg-fon").length === 1 ) return O.one("mouseout", arguments.callee); S.hide(150, function () { O.one("mouseover", H); }); }); }); }); |
Спасибо большое! Сейчас все отлично работает!)
|
Для этого есть событие hover():
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { var span = $('span'); $('div').hover( function() {span.show()}, function() {span.hide()} ); }); </script> <div>text</div> <span style="display: none;">what is it?</span> |
monolithed, у ТС анимация, а у Вас простое скрытие/показывание.
|
Цитата:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $('div').hover(function() { $('p').animate({ height: 'toggle', opacity: "toggle" }, { queue: false, duration: 500 }); }); }); </script> <style type="text/css"> p { background: red; width: 100px; height: 100px; } </style> <div>text</div> <p style="display: none;"></p> |
Цитата:
|
Часовой пояс GMT +3, время: 01:03. |