Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   this в селекторе (https://javascript.ru/forum/jquery/30805-v-selektore.html)

LIME 16.08.2012 15:54

this в селекторе
 
Здравствуйте!
подскажите как здесь
$('.menu_item').hover(function(){$(this+' ul').slideToggle("fast")});

правильно использовать this

vadim5june 16.08.2012 16:09

что то типа $(this).find('ul')

ksa 16.08.2012 16:11

Цитата:

Сообщение от LIME (Сообщение 198007)
подскажите как здесь
$('.menu_item').hover(function(){$(this+' ul').slideToggle("fast")});

правильно использовать this

Как вариант

$('.menu_item').hover(function(){
   $('ul',this).slideToggle("fast");
});

LIME 16.08.2012 16:36

Спасибо!

LIME 16.08.2012 17:55

еще вопрос
проводя несколько раз по пункту меню туда-сюда))
наблюдаем красивое многократное выпадание/западание
как грамотно можно убить такой эффект?

LIME 16.08.2012 18:15

получилось нагуглить)
$('.menu_item').hover(function(){$('ul',this).stop(true, true).slideToggle("fast")});

melky 16.08.2012 20:01

ksa,
к слову, я читал, что не рекомендуется использовать конструкцию вида
$(selector, context)

а рекомендуется использовать такое :
$(context).find(selector);

... где прочитал, не помню. помню, что книжка опенсоурсна и выложена на гитхаб :)

сюда относится так же использование
$.data(element, myvar, myval);

заместо
$(element).data(myvar, myval);

ksa 16.08.2012 20:33

Цитата:

Сообщение от melky
я читал, что не рекомендуется использовать конструкцию вида
$(selector, context)

а рекомендуется использовать такое :
$(context).find(selector);

Учту. :yes:
Мне такой вариант, кто-то подсказал на этом же форуме... Теперь использую и пока нареканий нет.


Часовой пояс GMT +3, время: 23:53.