jQuery -> onmouseover
Добрый вечер,
есть несколько div-блоков, имеющих класс ".class1", с css-атрибутом visibility: hidden. По событию onmousemove должен подсвечиваться тот блок, под которым находится курсор $(".class1").mousemove(function(){ $("#text").css('visibility','visible'); ;}) Этот код подсвечивает только первый из блоков, вне зависимости над каким курсор...подскажите что нить плз |
по-моему, html элементы c visibility:hidden вообще не реагируют на события мыши
|
Цитата:
|
.class1{ display: none; blah-blah-blah... } $(".class1").mousemove(function(){ $(this).css('display','block'); // либо $(this).show(); } } |
Не совсем точно сформулировал задачу. Правильно вот так: есть несколько div-блоков, имеющих класс ".class1", внутри каждого - по блоку с классом ".class2" и css-атрибутом visibility: hidden. Нужно чтобы при наведении курсора на блок с ".class1" становился видимым элемент с классом ".class2" и исчезал при удалении курсора с ".class1"
Решение: (кстати с visibility:nidden работают mouse-ивенты) $(".class1").mouseover(function(){ $(this).find(".class2").css('visibility','visible'); ;}) $(".class1").mouseout(function(){ $(this).find(".class2").css('visibility','hidden'); ;}) Можно ли как то оптимизировать этот код, ну в плане скорости выборки...? |
Цитата:
$('.class1').hover( function () { $(this).find('.class2').css('visibility','visible'); }, function () { $(this).find('.class2').css('visibility','hidden'); } ); |
Спасиба, а есть какая то альтернатива find, вроде бы есть метод children? Он быстрее будет искать?
|
Цитата:
Но, т.к. у вас всего один потомок, то и find() и children() выполнят абсолютно одинаковые действия за одинаковое время :) оптимизации здесь не добиться. |
Ясно, спасибо!
|
Часовой пояс GMT +3, время: 11:44. |