Несмотря на то, что вам нравится решение для тайм-аутов, вы можете использовать альтернативу, в которой вы используете глобальную переменную ( gasp ) для хранения идентификатора последнего нажатого ul
в переменной с именем lastClickedId
.
Затем, вместо того чтобы использовать задержку для отображения элементов списка, вы можете использовать рекурсивную функцию, чтобы связать обратный вызов toggleFade так, чтобы он вызывал исчезновение следующего элемента li
. В вашей функции обратного вызова вы будете проверять, является ли родительский элемент текущего списка тем же, что и lastClickedId
, и, если оно истинно, выполнить замирание для текущего элемента li
. В противном случае это нарушает рекурсию.