Запутался с событиями
Вот собственно то в чем проблема.
http://erro13.technospeech.com/ Все работает нормально пока не наводишь курсор в на поле с title. Как нужно сделать правильно что бы не было этих мерцаний? Управляющий скрипт такой: $(document).ready(function() { var box = $("<div/>").addClass("box"); var title = $("<div/>").addClass("title").text("Title"); for(i = 0; i < 9; i++) { var item = $(box).clone(); item.append($(title).clone()); $("#content").append(item); } $(".box").mouseover(function() { $(this).find(".title").fadeTo(500, 0.9); }); $(".box").mouseout(function() { $(this).find(".title").fadeTo(500, 0.0); }); }); |
А в чём проблема, собственно? По-моему, всё нормально работает.
|
мерцание происходит потому что вызывается mouseover, потом вы наводите на элемент .title (который находится как я понял внутри элемента .box), т.о. происходит mouseout с элемента .box, но т.к. мышь опять находится на этом элементе после скрытия .title - этот элемент опять отображается (и т.д.)
решение - при mouseout проверьте элемент на который пришла мышь $(".box").mouseout(function(event) { event = event || window.event //получаем объект на который ушла мышь var relatedTarget = event.relatedTarget || event.toElement далее проверяем является ли этот элемент "ребенком" элемента .box - например через parent(). Если да, то не скрываем, если нет - скрываем. |
Бред. Так как .title является потомком .box, при движении по нему mouseout для .box происходить не должен. Плюс - элемент не прячется, у него просто нулевая прозрачность. Это означает, что все события будут происходить для .title.
|
В этих двух строчках что происходит?
var box = $("<div/>").addClass("box"); var title = $("<div/>").addClass("title").text("Title"); |
trikadin, бред говорите??? нюню...
я просто сам с таким сталкивался, когда происходило мерцание элементов при использовании mouseover, mouseout. Поэтому рассказываю как я сам с этим боролся. |
К сожалению желаемый результат не достигнут (((( Жду помощи...
|
Black_Prince, а обработчик вешали через jquery? Это может быть последствием её использования...
MadGest, попробуйте добавить обработчик стандартными способами. |
MadGest,
Попробуйте заменить mouseout на mouseleave |
Спасибо за mouseleave. Действительно помогло!
|
Часовой пояс GMT +3, время: 17:13. |