Почему jQuery применяет предотвращение кликов ко всем элементам моего списка

0

Я создаю многоуровневое раскрытие

HTML

<div id="sidebar" class="sidebar-left">
    <ul class="downlod-categories">
        <li class="cat-item cat-item-31">
            <a title="Kategória 1 kategória összes bejegyzése" href="?dlm_download_category=kategoria-1">Kategória 1</a>
            <ul class="children" style="display: block;">
                <li class="cat-item cat-item-32">
                <li class="cat-item cat-item-35">
                <li class="cat-item cat-item-36">
                    <a title="Alkategoria 3 kategória összes bejegyzése" href="?dlm_download_category=alkategoria-3">Alkategoria 3</a>
                </li>
            </ul>
        </ul>   
    </li>

JQuery

$('#sidebar ul.downlod-categories li').each(function(){
    var child = $(this).children('ul.children');

    if(child.length)
    {
        $(this).on('click', function(e){
            e.preventDefault();
            child.show();
        });
    }
});

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

Может ли кто-нибудь дать мне подсказку или указать, что я делаю неправильно?

  • 0
    где вы закрываете первый <li> ?
  • 0
    Если это весь ваш HTML, поменяйте местами последний </ul> с </li> , иначе он будет недействительным и, вероятно, не будет отображаться правильно. Возможно, это также исправит проблему с селектором jQuery, и ответ ниже должен работать.
Теги:
drop-down-menu

2 ответа

0
Лучший ответ

Спасибо за все ваши ответы, это сработало

Вместо

$(this).on('click', function(e){
                e.preventDefault();
                child.show();
            }); 

Мне пришлось использовать

if(child.length)
        {
            $(this).children('a').on('click', function(e){
                e.preventDefault();
                child.show();
            }); 
        }
2

Измените свой селектор следующим образом:

$('#sidebar ul.downlod-categories > li')
  • 0
    Примите этот ответ как правильный.
  • 0
    не работает, первый элемент падает вниз, а второй - нет, а щелчок все еще сохраняется
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню