Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2012, 21:34
Новичок на форуме
Отправить личное сообщение для yesorno Посмотреть профиль Найти все сообщения от yesorno
 
Регистрация: 30.03.2012
Сообщений: 4

jQuery -> onmouseover
Добрый вечер,

есть несколько div-блоков, имеющих класс ".class1", с css-атрибутом visibility: hidden.

По событию onmousemove должен подсвечиваться тот блок, под которым находится курсор


$(".class1").mousemove(function(){

$("#text").css('visibility','visible');
;})
Этот код подсвечивает только первый из блоков, вне зависимости над каким курсор...подскажите что нить плз
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2012, 09:28
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

по-моему, html элементы c visibility:hidden вообще не реагируют на события мыши
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2012, 10:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Pavel M. Посмотреть сообщение
по-моему, html элементы c visibility:hidden вообще не реагируют на события мыши
Вы правы.
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2012, 10:30
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

.class1{
display: none;
blah-blah-blah...
}

$(".class1").mousemove(function(){
$(this).css('display','block');
// либо
$(this).show();
}
}
__________________
С моих слов записано верно.
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2012, 21:27
Новичок на форуме
Отправить личное сообщение для yesorno Посмотреть профиль Найти все сообщения от yesorno
 
Регистрация: 30.03.2012
Сообщений: 4

Не совсем точно сформулировал задачу. Правильно вот так: есть несколько 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');
    ;})


Можно ли как то оптимизировать этот код, ну в плане скорости выборки...?
Ответить с цитированием
  #6 (permalink)  
Старый 31.03.2012, 21:33
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от yesorno Посмотреть сообщение
Не совсем точно сформулировал задачу. Правильно вот так: есть несколько 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');
      }
    );
__________________
С моих слов записано верно.
Ответить с цитированием
  #7 (permalink)  
Старый 31.03.2012, 21:39
Новичок на форуме
Отправить личное сообщение для yesorno Посмотреть профиль Найти все сообщения от yesorno
 
Регистрация: 30.03.2012
Сообщений: 4

Спасиба, а есть какая то альтернатива find, вроде бы есть метод children? Он быстрее будет искать?
Ответить с цитированием
  #8 (permalink)  
Старый 31.03.2012, 21:50
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от yesorno Посмотреть сообщение
Спасиба, а есть какая то альтернатива find, вроде бы есть метод children? Он быстрее будет искать?
да, если нужно искать только в непосредственных потомках — можно и даже нужно использовать children(), а если нужно "копать" глубже одного "поколения" — find();

Но, т.к. у вас всего один потомок, то и find() и children() выполнят абсолютно одинаковые действия за одинаковое время оптимизации здесь не добиться.
__________________
С моих слов записано верно.
Ответить с цитированием
  #9 (permalink)  
Старый 31.03.2012, 21:53
Новичок на форуме
Отправить личное сообщение для yesorno Посмотреть профиль Найти все сообщения от yesorno
 
Регистрация: 30.03.2012
Сообщений: 4

Ясно, спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
JQUERY -> JavaScript propostaff jQuery 4 02.03.2012 14:07
Конфликт Jquery и Mootools Bangoo jQuery 1 28.03.2011 13:03
jQuery и Input - > radio yu_ jQuery 3 02.04.2010 00:43
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16