jQuery if

RaftKorn
На сайте с 20.03.2007
Offline
166
749

Подскажите, есть многоуровневое меню ul li, можно ли как-то задать jQuery функцию только для первого уровня li ?

И еще - можно ли как-то определить, есть ли в определенном пункте li вложенная ul, что-то типа - if($(this).next() == 'ul') ?

Премиум верстка и дизайн под ключ ( https://searchengines.guru/ru/forum/1045270 )
skAmZ
На сайте с 04.09.2009
Offline
122
#1
RaftKorn:
можно ли как-то задать jQuery функцию только для первого уровня li ?

$('ul>li')

RaftKorn:
И еще - можно ли как-то определить, есть ли в определенном пункте li вложенная ul, что-то типа - if($(this).next() == 'ul') ?

можно $(this).find('ul') пустит через each и там инкремент переменной сделать... что-то вроде:


$('ul>li').each(function(){
var cnt=0;
$(this).find('ul').each(function(){
cnt++;
});
if(cnt>0) {
// есть ul внутри
}else{

}
});
gormarket
На сайте с 29.12.2010
Offline
47
#2
RaftKorn:
И еще - можно ли как-то определить, есть ли в определенном пункте li вложенная ul, что-то типа - if($(this).next() == 'ul') ?

Попробуйте так:


if($(this).find("ul").length){
//есть вложенные ul
}
Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
R
На сайте с 06.02.2011
Offline
62
#3

$('ul>li:first')

$('ul li').eq(0)

$('ul li').eq(x).length>0 - оно есть! оно не может не есть

RaftKorn
На сайте с 20.03.2007
Offline
166
#4

Почему-то когда задаю:

$('.smenu>ul>li').click(function() {
$('.up').slideUp(200);
});

то .up захлопывается как при нажатии на первую li, так и на вложенную в нее... возможно из-за того что вложенная li - это также и область начальной li. Не знаю как быть... Надо чтоб закрывалась только при нажатии на первую li, а при нажатии на вложенную нет.

RaftKorn добавил 16.09.2011 в 22:02

Решил проблему так .smenu>ul>li>a

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#5

Надо применить хитрость:

$('ul').click(function() {
event.stopPropagation();
});

Т.е. если клик попал в UL - то запрещаем всплытие события вверх по дереву DOM

Пример: http://jsfiddle.net/abarykin/LfFLG/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий