Преобразование нескольких функций в одну, выполняющую одно и то же действие в jquery - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть простой html multi-level nested list, и я пытаюсь auto-collapse всех элементов, когда еще один в списке расширяется, в настоящее время я сделал 5 functions, чтобы сделать это, отдельная функция для каждого уровня .Это то, что я сделал до сих пор:

$(document).ready(function () {

$('#tree > li').click(function () {
    $('li').not(this).each(function () {
        $(this).children('ul').hide('fast');
        $(this).children('span').removeClass('explr-minus');
    });
});

$('ul#tree > li > ul > li').click(function () {
    $('ul#tree > li > ul > li').not(this).each(function () {
        $(this).children('ul').hide('fast');
        $(this).children('span').removeClass('explr-minus');
    });
});

$('ul#tree > li > ul > li > ul > li').click(function () {
    $('ul#tree > li > ul > li > ul > li').not(this).each(function () {
        $(this).children('ul').hide('fast');
        $(this).children('span').removeClass('explr-minus');
    });
});

$('ul#tree > li > ul > li > ul > li > ul > li').click(function () {
    $('ul#tree > li > ul > li > ul > li > ul > li').not(this).each(function () {
        $(this).children('ul').hide('fast');
        $(this).children('span').removeClass('explr-minus');
    });
});

$('ul#tree > li > ul > li > ul > li > ul > li > ul > li').click(function () {
    $('ul#tree > li > ul > li > ul > li > ul > li > ul > li').not(this).each(function () {
        $(this).children('ul').hide('fast');
        $(this).children('span').removeClass('explr-minus');
    });
  });
});

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

...